如何解决响应后如何在 Apollo GraphQl 中重新定义查询的形状
与 apollo 合作很棒,但如何更改查询响应的形状。我正在使用 reactjs 来显示用户详细信息和他们的音乐信息
说我有一个查询
query {
userDetails {
id,name,music {
name,type
}
}
有没有办法使用 apollo(不是在 reactjs 中)将形状更改为类似
query {
userDetails {
id,musicName,musicType
}
}
这样我就得到第二个形状作为响应而不是第一个,然后我将不得不使用 reactjs 更改它
解决方法
您可以使用 @client
-directive 和 TypePolicies
假设查询返回的 typename 是“User”:
查询:
query {
userDetails {
id,name,music {
name,type
}
musicName@client
musicType@client
}
客户端设置:
const client = new ApolloClient({
cache: new InMemoryCache({
typePolicies: {
User: {
fields: {
musicName: {
read(_,{ readField }) {
return readField('music').name;
}
},musicType: {
read(_,{ readField }) {
return readField('music').type;
}
},}
}
}
}),uri: "yourGraphqlServer.com"
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。