在这一系列的文章中我们将学习GraphQL是怎样工作的。想要通过文档知道如何打造GraphQL服务?这里有一些库可以帮助你在很多不同语言里实现GraphQL。
GraphQL是一种支持API的查询语言,同时也是根据你的数据自定义类型(type)系统的服务端热执行查询。GraphQL并没有绑定任何数据库或内存引擎,而是完全基于你现有的代码和数据。
一个GraphQL服务是通过定义类型(type)和type上的fields, 然后给每一个type里的fields提供函数来创建的。比如,一个GraphQL服务要告诉我们谁是已登陆的用户(我自己)以及用户的名字可能会是这样的:
type Query {
me: User
}
type User {
id: ID
name: String
}
对应每一个type里的field的函数:
function Query_me(request) {
return request.auth.user;
}
function User_name(user) {
return user.getName();
}
当一个GraphQL服务正在运行时(通常在一个web服务的URL上),可以通过发送GraphQL语句来进行验证和执行。一个收到的查询语句会首先被检查以保证它被指向被定义的types和fields,然后运行提供的函数来执行结果。
比如这个语句:
{
me {
name
}
}
能够生成以下JSON结果:
{
"me": {
"name": "Luke Skywalker"
}
}
学习更多关于GraphQL - 查询语句,类型系统,GraphQL服务如何工作,以及用GraphQL来解决一般问题的最佳实践 - 这些就是这个部分所写的内容。