即使我们尝试获取数据而不是更新/提交新数据,为什么 GraphQL 查询还是 POST 请求?

Aak*_*ary 24 postman graphql

我使用 Postman 从服务器获取数据,当我使用 REST 调用时,它是 GET 请求,但当我使用 GraphQL API 调用时,它需要是 POST 请求。为什么会这样呢?

Dan*_*den 40

GraphQL 规范本身与传输无关,但社区采用的惯例是利用 POST 请求。正如评论中指出的,一些库支持 GET 请求。但是,执行此操作时,必须将查询作为 URL 查询参数发送,因为 GET 请求不能包含正文。对于较大的查询,这可能会出现问题,因为您可以轻松地在某些服务器上遇到414 URI Too Long状态。

最佳实践是始终使用带有application/jsonContent-Type 的 POST 请求。