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 的选择发生在哪一侧?的主要内容,如果未能解决你的问题,请参考以下文章

如何在graphql突变中设置多对多关系?

无法检索 Flutter 项目中 Graphql 突变中发生的错误

如何在 Apollo / GraphQL 发生突变后更新缓存?

在发生异常时使用服务抛出的不同代码覆盖 GraphQL 默认状态代码(200)

当 graphql 变量的状态发生变化时,react-native 上的结果保持不变

当 ref 随 vue 组合 api 发生变化时,如何触发 graphql 查询?