graphql 的选择发生在哪一侧?
Posted
技术标签:
【中文标题】graphql 的选择发生在哪一侧?【英文标题】:Which side does the select take place for graphql? 【发布时间】:2020-05-09 06:22:15 【问题描述】:假设我有这种类型:
type User
name: string!
但是解析器将那个对象打包回来:
"name": "john",
"topSecretPassword": "123456"
graphql 客户端不知道如何选择字段topSecretPassword
,因为它超出了架构。该字段是否发送到客户端并被丢弃?是否在服务器端忽略该字段?
【问题讨论】:
【参考方案1】:GraphQL 服务仅返回请求的字段。如果未请求该字段,则不会出现在响应中。如果架构中不存在该字段,则无法请求该字段。
无论解析器返回什么,这都是正确的。解析器中返回的值始终强制转换为适当的类型。对于对象类型,它的各个字段根据它们自己的解析器进行解析。
关于如何执行的详细解释,请参考spec。
【讨论】:
以上是关于graphql 的选择发生在哪一侧?的主要内容,如果未能解决你的问题,请参考以下文章
无法检索 Flutter 项目中 Graphql 突变中发生的错误
如何在 Apollo / GraphQL 发生突变后更新缓存?
在发生异常时使用服务抛出的不同代码覆盖 GraphQL 默认状态代码(200)