为啥即使我们尝试获取数据而不是更新/提交新数据,GraphQL 也会查询 POST 请求?
Posted
技术标签:
【中文标题】为啥即使我们尝试获取数据而不是更新/提交新数据,GraphQL 也会查询 POST 请求?【英文标题】:Why are GraphQL queries POST requests even when we are trying to fetch data and not update/submit new data?为什么即使我们尝试获取数据而不是更新/提交新数据,GraphQL 也会查询 POST 请求? 【发布时间】:2020-03-28 10:39:19 【问题描述】:我正在使用 Postman 从我的服务器获取数据,当我使用 REST 调用时,它是一个 GET 请求,但是当我使用 GraphQL API 调用时,它需要是一个 POST 请求。为什么会这样?
【问题讨论】:
你也可以使用像http://myapi/graphql?query=mename
这样的GET请求(来源:graphql.org/learn/serving-over-http/#get-request)我认为这取决于你的API配置。
知道了,谢谢@Mate!
【参考方案1】:
GraphQL 规范本身与传输无关,但是社区采用的惯例是使用 POST 请求。正如 cmets 中所指出的,一些库支持 GET 请求。但是,这样做时,查询 必须作为 URL 查询参数发送,因为 GET 请求不能有正文。这对于较大的查询可能会出现问题,因为您可以轻松地在某些服务器上达到414 URI Too Long 状态。
最佳做法是始终使用带有application/json
Content-Type 的 POST 请求。
【讨论】:
这完全有道理,感谢@Daniel 给予更多的关注!以上是关于为啥即使我们尝试获取数据而不是更新/提交新数据,GraphQL 也会查询 POST 请求?的主要内容,如果未能解决你的问题,请参考以下文章