开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
GraphQL首页、文档和下载 - 用于 API 的查询语言 - 开源中国社区
Float_left Icon_close
全部项目分类
未知
SHELL 查看源码»
跨平台
Facebook
分享
收藏
136 人收藏
收录时间:2017-03-11
GraphQL 详细介绍

GraphQL 既是一种由 Facebook 提出的用于 API 的查询语言,也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。

使用 GraphQL,你可以基于图模式定义你的后端。然后客户端就可以请求所需要的数据集。

因此,你不必因为客户端数据需求的变更而改变你的后端。这解决了管理 REST API 中的最大的问题。

GraphQL 同样能够让客户端程序高效地批量获取数据。例如,看一看下面这个 GraphQL 请求:

{
  latestPost {
    _id,
    title,
    content,
    author {
      name
    },
    comments {
      content,
      author {
        name
      }
    }
  }
}

这个 GraphQL 请求获取了一篇博客文章和对应评论与作者信息的数据。下面是请求的返回结果:

{
  "data": {
    "latestPost": {
      "_id": "03390abb5570ce03ae524397d215713b",
      "title": "New Feature: Tracking Error Status with Kadira",
      "content": "Here is a common feedback we received from our users ...",
      "author": {
        "name": "Pahan Sarathchandra"
      },
      "comments": [
        {
          "content": "This is a very good blog post",
          "author": {
            "name": "Arunoda Susiripala"
          }
        },
        {
          "content": "Keep up the good work",
          "author": {
            "name": "Kasun Indi"
          }
        }
      ]
    }
  }
}

如果你使用的是 REST 的话,你需要调用多个 REST API 的请求才能获取这些信息。

GraphQL 是一个规范

因此,它可以用于任何平台或语言。它有一个参考的实现 JavaScript,由 Facebook 维护。还有许多社区维护的实现有许多种语言。

介绍内容来自 简书

GraphQL 中文站点:http://graphql.cn/

GraphQL

选择将代码托管在码云
你还在等什么

可能是中国最大最好的代码托管平台


大家对 GraphQL 的评论 (全部 13 条评论)
{{repayCom.userName}}
Yason_Luo
大家说码云接口要不要做 GraphQL 版本的?
天铃鸟
感觉容易被人搞sql注入
张伯函
GraphQL是一个类似RESTful一样的一个接口协议,不过更强大,更灵活
xmqywx
之前React用Relay,现在用 https://www.oschina.net/p/apollo-client 还支持
Angular
Vue
Meteor
Ember
Polymer
Native iOS with Swift
Native Android with Java
小白小霸王
有利有弊 观望一下
GraphQL 相关博客
顶部