你能解释一下 GraphQL POST 请求中的术语吗
Can you explain the terminology in a GraphQL POST request
在 Apollo Developers 文档中有一个 GraphQL
中 post 请求的有效主体的示例
{
"query": "query aTest($arg1: String!) { test(who: $arg1) }"
}
根据我在 Apollo Server 中看到的情况,此查询也适用于:
{
"query": "aTest($arg1: String!) { test(who: $arg1) }"
}
谁能解释一下为什么 "query" 在第一个例子中出现两次? GraphQL 服务器从中解释了什么?
第二个例子是标准化格式吗?
参考:http://dev.apollodata.com/tools/graphql-server/requests.html
查询在 GraphQL 中有两种含义——它可以指代向服务器发出的请求,或者指代该请求中使用的操作类型。 GraphQL 中使用了三种类型的操作——查询、变异和订阅。
在您的第一个示例中,第一个 query
标识随您的请求一起发送的 查询文档 。第二个 query
标识操作类型。
换句话说,您可以查询一个服务器,但是您的查询可能包含也可能不包含查询(例如,它可能是一个 Mutation)。
在编写查询时,如果您省略了操作类型,GraphQL 会简单地假设您需要一个查询,而不是其他操作,并顺其自然。以类似的方式,也可以省略 操作名称 (aTest
)。
据我所知,省略操作名称没有任何好处 - 您应该始终包含它以防止出现任何歧义和潜在问题。
在 Apollo Developers 文档中有一个 GraphQL
中 post 请求的有效主体的示例{
"query": "query aTest($arg1: String!) { test(who: $arg1) }"
}
根据我在 Apollo Server 中看到的情况,此查询也适用于:
{
"query": "aTest($arg1: String!) { test(who: $arg1) }"
}
谁能解释一下为什么 "query" 在第一个例子中出现两次? GraphQL 服务器从中解释了什么?
第二个例子是标准化格式吗?
参考:http://dev.apollodata.com/tools/graphql-server/requests.html
查询在 GraphQL 中有两种含义——它可以指代向服务器发出的请求,或者指代该请求中使用的操作类型。 GraphQL 中使用了三种类型的操作——查询、变异和订阅。
在您的第一个示例中,第一个 query
标识随您的请求一起发送的 查询文档 。第二个 query
标识操作类型。
换句话说,您可以查询一个服务器,但是您的查询可能包含也可能不包含查询(例如,它可能是一个 Mutation)。
在编写查询时,如果您省略了操作类型,GraphQL 会简单地假设您需要一个查询,而不是其他操作,并顺其自然。以类似的方式,也可以省略 操作名称 (aTest
)。
据我所知,省略操作名称没有任何好处 - 您应该始终包含它以防止出现任何歧义和潜在问题。