10月8日至10日与我们在纽约市相聚,学习有关 GraphQL 联邦和 API 平台工程的最新提示、趋势和新闻。加入我们,共赴2024年纽约市 GraphQL 大会
文档
免费开始

操作请求格式

通过HTTP向路由器发送请求


默认情况下,几乎所有的集成开发环境(IDE)和客户端库会负责以GraphOS Router或Apollo Router Core支持的数据格式发送。本文描述了该格式,该格式也在graphql.org这个初步规范中进行了描述。

路由器支持通过POST请求发送的查询、。它还接受以GET请求发送的查询。

POST请求

路由器接收带有JSON主体的POST请求。一个有效的请求包含一个query字段,以及可选的variables和一个operationName(如果query包含多个可能的操作)。

假设我们想要执行以下

query GetBestSellers($category: ProductCategory) {
bestSellers(category: $category) {
title
}
}

以下是为该查询提供一个有效POST请求体的示例:查询:

{
"query":"query GetBestSellers($category: ProductCategory){bestSellers(category: $category){title}}",
"operationName": "GetBestSellers",
"variables": { "category": "BOOKS" }
}

请注意,对于这个特定的请求体,operationName 不是必需的,因为 query 只包含一个 定义。

您现在可以使用以下 curl 命令对Apollo托管示例服务器执行此查询:

curl --request POST \
-H 'Content-Type: application/json' \
--data '{"query":"query GetBestSellers($category:ProductCategory){bestSellers(category: $category){title}}", "operationName":"GetBestSellers", "variables":{"category":"BOOKS"}}' \
https://rover.apollo.dev/quickstart/products/graphql

路由器的默认着陆页提供了一个 curl 命令,您可以使用此命令在您自己的服务器上执行测试 查询

GET 请求

路由器还接受针对查询的GET请求(但不接受 mutations)。使用GET请求,查询详情(queryoperationNamevariables)作为URL查询参数提供。variables 选项是一个URL编码的JSON对象。

以下是从 POST 请求 格式化用于 curl GET 请求的同一查询:

curl --request GET \
https://rover.apollo.dev/quickstart/products/graphql?query=query%20GetBestSellers%28%24category%3AProductCategory%29%7BbestSellers%28category%3A%20%24category%29%7Btitle%7D%7D&operationName=GetBestSellers&variables=%7B%22category%22%3A%22BOOKS%22%7D

持久查询协议

Apollo Router Core)特性应用于 )功能使用一个单独的协议来发送在 extensions 中存储的操作 信息。此协议还可以使用HTTP POST或GET。有关详细说明,请参阅 APQ 协议文档。

上一页
@defer支持
下一页
查询批处理
评分文章评分在GitHub上编辑编辑论坛Discord

©2024Apollo Graph Inc.,业务称Apollo GraphQL。

隐私政策

公司