Graphql基本概念

1. 什么是Graphql GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的runtime。 GraphQL对你的API中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让API更容易地随着时间推移而演进,还能用于构建强大的开发者工具。 一个 GraphQL 服务是通过定义类型和类型上的字段来创建的,然后给每个类型上的每个字段提供解析函数。 简单的说,GraphQL为我们定义数据库提供了更为便捷的方式,你不需要写任何SQL语句,即可完成数据库的创建及迁移等工作。 2. 概览 例如,一个 GraphQL 服务告诉我们当前登录用户是 me,这个用户的名称可能像这样: type Query { me: User } type User { id: ID name: String } 一并的还有每个类型上字段的解析函数: function Query_me(request) { return request.auth.user; } function User_name(user) { return user.getName(); } 一旦一个 GraphQL 服务运行起来(通常在 web 服务的一个 URL 上),它就能接收 GraphQL 查询,并验证和执行。接收到的查询首先会被检查确保它只引用了已定义的类型和字段,然后运行指定的解析函数来生成结果。 例如这个查询: { me { name } } 会产生这样的JSON结果: { "me": { "name": "Luke Skywalker" } } 3. Schema 和类型 GraphQL 服务可以用任何语言编写,但并不依赖于任何特定语言的句法句式(譬如 JavaScript)来与 GraphQL schema 沟通,Graphql定义了自己的简单语言,称之为 “GraphQL schema language”。...

April 22, 2021 · 3 min · 李昌