GraphQL

GraphQL:用 Graphcool 创建一个 GraphQL 后端服务

每个前端,移动端开发者都应该了解一下 GraphQL。要试一下 GraphQL,你得去搭建一个 GraphQL 后端服务,可以用 Node.js,Rails,Django 等等。最近宁皓网录了个课程,介绍了用 Node.js 创建一个 GraphQL 后端服务。等不及的话,你可以找个现成的服务。比如 Graphcool,它可以快速帮你创建一个 GraphQL 的后端服务。

创建一个后端服务以后,你就可以去练习 GraphQL 的查询,修改,订阅等等。

GraphQL:查询与修改(Queries and Mutations)

介绍怎么查询 GraphQL 服务。

字段:Fields

最简单的查询就是告诉 Graphql 你想要的字段是什么:

{
  hero {
    name
  }
}

查询结果:

{
  "data": {
    "hero": {
      "name": "R2-D2"
    }
  }
}

注意看查询与结果的数据形状,它们是一致的。这是 GraphQL 最重要的一个特点,你会获取到期待的数据,服务器确切地知道客户端想要的字段。

name 字段的类型是 String,上面例子里,name 的值是 R2-D2,他是电影 Star Wars 里的人物。

上面这个例子,你要的是人物的 name,返回的是个字段串类型的数据。字段的值也可以是对象,你可以选择对象里的某些字段。GraphQL 的查询可以找到相关的对象还有它们的字段,这样客户端只需要用一个请求就可以提取大量相关的数据。如果是 REST,可能需要来回跑几次才能得到需要的数据。

GraphQL:接口查询语言介绍

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 介绍

在 2015 React 欧洲大会上,Lee Byron 介绍了 Facebook 的 GraphQL ,包含 GraphQL 背后的故事,查询语句的示例,还有核心的概念。GraphQL 非常易懂,直接看查询语句就能知道查询出来的数据是什么样的。你可以把 GraphQL 的查询语句想成是没有值,只有属性的对象,返回的结果就是对应的属性还有对应值的对象。

故事

从 2011 开始,Facebook 开始越来越重视移动端,一支很小的团队开始去做 Android 与 iOS 应用。Facebook 的强项是 Web,也非常的了解 Web ,而且在这方面储备了大量的技术。当年 Facebook 的主要平台就是传统的 浏览器 Web 服务器 数据服务 的组合,Web 服务器响应浏览器的请求,到数据服务那里提供出数据,然后再交给浏览器去显示。

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点