GraphQL 和嵌入之间的区别

Difference between GraphQL and Embedding

我只是稍微玩了一下 graphql,还不能识别 graphql 和 REST 在嵌入和部分响应方面的区别。

TeamCity 多年来一直使用部分响应,它作为 "Restful" 服务

https://github.com/dotarj/PartialResponse

http://v2.wp-api.org/reference/links.html

REST 是一种架构风格,而不是一种格式或查询语言(就像 GraphQL 一样)。可以构建支持部分资源或资源层次结构的 API(其他示例包括 JSON 补丁或 JSON 图表),但此类方法不是 REST 的概念部分.另一方面,它们 GraphQL 的概念部分。您选择的示例与 GraphQL 有一些相似之处,但这并不是因为它们是 RESTful 服务。

另一方面,REST 基于一些不符合 GraphQL 的方法(反之亦然)。不完整的列表包括:

  • HTTP 是 REST 的构建块。 GraphQL 规范提到了“客户端”和“服务器”,但我没有读到它需要 HTTP。
  • REST 基于 HTTP 动词。因为看起来 GraphQL 不需要 HTTP,所以它不需要 HTTP 动词。无论如何,这是行不通的,因为 GraphQL 允许您在一个查询中混合操作:您可以在一个请求中执行一个变更和一个查询——这与 REST 不兼容,因为查询必须是 GET,而突变必须是 POST 或 PUT.
  • GraphQL 中缺少 HTTP 状态代码的语义。