51

中继文档包含以下片段:

query RebelsRefetchQuery {
  node(id: "RmFjdGlvbjox") {
    id
    ... on Faction {
      name
    }
  }
}

... on Faction在语法上是什么意思?

4

2 回答 2

56

...相关片段有两种用途。

通过引用合并片段

query Foo {
  user(id: 4) {
    ...userFields
  }
}

fragment userFields on User {
  name
}

具有将片段中的字段组合到嵌入查询中的效果:

query Foo {
  user(id: 4) {
    name
  }
}

请注意,片段可能会组成其他片段。

内联片段

从文档:

如果要查询返回接口或联合类型的字段,则需要使用内联片段来访问底层具体类型的数据。

https://graphql.org/learn/queries/#inline-fragments

这些可用于以依赖于类型的方式组成字段。例如:

query Foo {
  profile(id: $id) {
    url
    ... on User {
      homeAddress
    }
    ... on Business {
      address
    }
  }
}

在此示例中,服务器将根据请求的对象是 a还是 a来确定是否在运行时返回homeAddressor字段。addressUserBusiness

于 2016-01-22T16:50:28.527 回答
7

啊。它在这里解释:

使用扩展运算符 (...) 消耗片段。片段选择的所有字段都将添加到与片段调用相同级别的查询字段选择中。这是通过多个级别的片段传播发生的。

于 2016-01-17T12:03:13.140 回答