【问题标题】:Can you explain the terminology in a GraphQL POST request你能解释一下 GraphQL POST 请求中的术语吗
【发布时间】:2018-03-04 02:48:32
【问题描述】:

在 Apollo Developers 文档中,有一个 GraphQL 中发布请求的有效正文示例

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

根据我在 Apollo Server 中看到的情况,此查询也适用于:

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

有人可以解释为什么“查询”在第一个示例中出现两次吗? GraphQL 服务器从中解释了什么?

第二个例子是标准化格式吗?

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

【问题讨论】:

    标签: graphql graphql-js apollo


    【解决方案1】:

    Query 在 GraphQL 中可以有两种含义——它可以指向服务器发出的请求,或者指在该请求中使用的操作类型。 GraphQL 中使用了三种类型的操作——查询、变异和订阅。

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

    换句话说,您可以查询一个服务器,但您的查询可能包含也可能不包含查询(例如,它可能是一个 Mutation)。

    在编写查询时,如果您省略操作类型,GraphQL 会简单地假设您想要一个查询,而不是其他操作并随它滚动。以类似的方式,也可以省略操作名称 (aTest)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多