为什么即使我们尝试获取数据而不是更新/提交新数据,GraphQL 也会查询 POST 请求? [英] Why are GraphQL queries POST requests even when we are trying to fetch data and not update/submit new data?

查看:86
本文介绍了为什么即使我们尝试获取数据而不是更新/提交新数据,GraphQL 也会查询 POST 请求?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am using Postman to fetch data from my server and when I use a REST call it is a GET request but when I use a GraphQL API call, it needs to be a POST request. Why is it so?

推荐答案

GraphQL 规范本身与传输无关,但是社区采用的约定是利用 POST 请求.正如评论中所指出的,一些库支持 GET 请求.但是,这样做时,查询必须作为 URL 查询参数发送,因为 GET 请求不能有正文.这对于较大的查询可能会出现问题,因为您可以轻松点击 414某些服务器上的 URI 太长状态.

The GraphQL spec is itself transport-agnostic, however the convention adopted by the community has been to utilize POST requests. As pointed out in the comments, some libraries support GET requests. However, when doing so, the query has to be sent as a URL query parameter since GET requests can't have bodies. This can be problematic with bigger queries since you can easily hit a 414 URI Too Long status on certain servers.

最佳实践是始终使用带有 application/json 内容类型的 POST 请求.

The best practice is to always utilize POST requests with a application/json Content-Type.

这篇关于为什么即使我们尝试获取数据而不是更新/提交新数据,GraphQL 也会查询 POST 请求?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆