REST API 是一种架构风格,而 GraphQL 是一种查询语言。
GraphQL 服务器可用于多种语言,例如Java、Python
不是nosql,Neo4j用的Cypher语言才是
https://www.fullstacktutorials.com/interviews/graphql-interview-questions-57.html
GraphQL 只有一个带有 POST 方法的端点。但是可以处理更加复杂的请求。
REST 可以有许多具有 GET、POST、PUT、PATCH 方法的端点。
在 GraphQL 中,Mutation 用于更改数据。例如 - 创建、更新和删除数据。
在 GraphQL 中,订阅用于监听任何数据变化。
例如 -如果客户端订阅了该事件,服务器将在任何数据更改时通知客户端。
Resolver 是一个函数,用于处理图形查询并为 graphql 查询生成响应。
如何保护 GraphQL 查询?设置查询超时
GraphQL 的缺点是什么?
缓存 - GraphQL 不如 REST,尤其是 HTTP 缓存。
查询复杂度。
operations是查询语句,variables是具体要制定的变量数值,参考:https://www.apollographql.com/blog/graphql/examples/what-is-a-graphql-query-graphql-query-using-apollo-explorer/
query GetAlbumByTitle($albumTitle: String!) { album(title: $albumTitle) { title artist { name } genre tracks { title number } } }
Over-Fetching 和 Under-fetching 都是使用 GraphQL 可以解决的性能问题。如果您拥有准确的端点来为您的产品提供完全正确的数据,您就不会看到这些问题。