您可以在GraphQl Post请求中解释术语吗?



在Apollo开发人员文档中,有一个示例,用于graphql

中的邮政请求的有效主体
{
    "query": "query aTest($arg1: String!) { test(who: $arg1) }"
}

从我在阿波罗服务器中看到的查询也可以使用:

{
    "query": "aTest($arg1: String!) { test(who: $arg1) }"
}

有人可以解释为什么在第一个示例中出现"查询"两次?GraphQl Server从中解释了什么?

第二个示例是标准化格式?

参考:http://dev.apollodata.com/tools/graphql-server/requests.html

查询可以在GraphQL中具有两个含义 - 它可以参考对服务器的请求,也可以指该请求中使用的操作类型。GraphQl中使用了三种类型的操作 - 查询,突变和订阅。

在您的第一个示例中,第一个query标识了随请求发送的查询文档。第二个query标识了操作类型。

换句话说,您可以查询服务器,但是您的查询可能包含或不包含查询(例如,它可能是突变)。

编写查询时,如果您省略了操作的类型,则GraphQl只是假设您想要查询,而不是其他操作,并且可以使用它。以类似的方式,也可以省略操作名称aTest)。

afaik,省略操作名称没有任何好处 - 您应该始终包含它以防止任何歧义和潜在的问题。

最新更新