我试图模仿某些 GraphQL 的功能,但我无权运行原始版本。它的形式如下:
query {
dataSources(dataType: Ais) {
... on AisDataSource {
messages(filter: {broadcastType: Static}) {
... on AisStaticBroadcast {
field1
field2
(我省略了右括号)。
据我了解... on
要么包含一个片段(这里没有),要么在替代方案之间进行选择(但这些是嵌套的)。那么这个查询是否错误,或者还有更多问题... on
?
This
{
user {
... on User {
id
username
}
}
}
and this
{
user {
...UserFragment
}
}
fragment UserFragment on User {
id
username
}
是等价的。在这两种情况下,您都使用片段。在第一个示例中,我们简单地将片段称为内联片段 http://spec.graphql.org/June2018/#sec-Inline-Fragments.
当请求返回一个字段时复合型(对象、接口或联合),您必须指定一个选择集,或一个或多个返回类型字段。由于片段必须包含类型条件 (the on
关键字加类型名称),它们可用于根据运行时实际返回的类型指定不同的选择集。
{
user {
...RegularUserFragment
...AdminFragment
}
}
fragment RegularUserFragment on RegularUser {
id
username
}
fragment AdminFragment on Admin {
id
username
accessLevel
}
我们所说的是“如果运行时的类型是这样,则返回这组字段”。如果片段内的任何字段也返回复合类型,那么这些字段还必须指定一个选择集 - 这意味着可以在内部使用其他片段those选择集。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)