如何使用 graphql-js 定义片段?

Jos*_*ley 2 javascript graphql graphql-js

如何使用 graphql-js 在架构中定义片段?

import graphql from 'graphql'
/* how do I do this?
fragment authorInfo on Author {
  name
}
*/
Run Code Online (Sandbox Code Playgroud)

例如,要定义作者类型,我会:

import graphql from 'graphql'
export default new graphql.GraphQLObjectType({
  description: `An author`,
    name: {
      description: `The author's legal name.`,
      type: GraphQLString
    }
  }),
  name: `Author`
})
Run Code Online (Sandbox Code Playgroud)

所以这里的类型定义是由 生成的GraphQLObjecType。什么函数会生成片段?

Aᴍɪ*_*ᴍɪʀ 5

片段用于对字段进行分组并在客户端重用它们。它们不是您在服务器上和创建模式时应该担心的事情。

从服务器查询数据时,客户端代码应提供片段。GraphQL 本身负责在查询中添加碎片字段。在服务器上,您需要指定所有对象的所有字段。

当然,您可以编写自己的助手来减少手动工作。

变量也是如此。