GraphQL 是一种接口查询语言,还是一个服务端的用来执行查询的 runtime ,根据你的数据自己定义一个 type system 。GraphQL 不跟任何数据库或者任何存储引擎绑定在一起,它可以让你使用自己已有的代码和数据。
创建一些类型,在类型上添加字段,为每个类型上的每个字段提供一些返回数据用的方法。比如有个 GraphQL 服务可以告诉你当前登录的用户(me),可以给你返回用户的 id 还有用户名,这个 GraphQL 大概像这样:
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,你可以在上面验证还有执行查询。服务收到查询以后,它会先确定查询里用的类型还有字段已被定义,然后它会执行提供的方法生成查询结果。
一个 GraphQL 的查询,像这样:
{ me { name } }
查询的结果像这样:
{ "me": { "name": "Luke Skywalker" } }