国内使用`GraphQL`的文章很少,大多都是使用一个`Apollo demo`来演示一下,看官网也没有中文版的学习网站,
笔者第一次翻译英文文档,一个是为了自己方便学习,另外一个也是为了方便想要了解并学习`GrapQL`的同学!
如有错误,请指正并发送邮件到下面的邮箱,谢谢!
GraphQL 是继RESTFul之后又一新型的API查询语言,既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。
本系列的文章将学习到
GraphQL
,并了解到它的工作原理;下面的多种语言是在服务器上实现GraphQL
。更多的教程请访问https://www.howtographql.com/
GraphQL是API的一种查询语言,也是服务器端运行时、通过使用自定的数据系统来执行查询。它不依赖于任何特定的数据库或者数据存储引擎,而是通过现有的代码和数据来支持; 一个GraphQL
的服务是通过在这些类型上定义类型和字段,任何为每个类型和字段提供函数来创建,这样说可能有点难懂,下面举个例子来说明;例如, 一个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
服务开始运行(通常是一个URL在Web服务器上),就可以发送GraphQL
查询来验证和执行了。首先服务端收到一个查询之后会验证你的查询是否是使用了定义好的类型和字段,然后运行服务端运行定义好的函数来生成结果。
一个查询的例子:
{
me {
name
}
}
可能得到一个JSON
结果
{
"me": {
"name": "Luke Skywalker"
}
}
了解更多有关GraphQL
的信息、查询语言、类型系统、GraphQL服务的工作方式,以及使用GraphQL
解决常见问题的最佳实践将在下列文章中。