用于 API 的查询语言 GraphQL

用于 API 的查询语言 GraphQL

未知
SHELL 查看源码»
跨平台
Facebook
2017-03-11
红薯

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/

的码云指数为
超过 的项目
加载中

评论(13)

xmqywx
xmqywx
之前React用Relay,现在用 https://www.oschina.net/p/apollo-client 还支持 Angular Vue Meteor Ember Polymer Native iOS with Swift Native Android with Java
小白小霸王
小白小霸王
有利有弊 观望一下
星辰大海88
星辰大海88
和我现在写的架构桑耳方向
Element0506
Element0506
疑问,接口数据返回后,要怎么解析呢。
lywnko
lywnko
nice!
天铃鸟
天铃鸟
感觉容易被人搞sql注入
水山清风
水山清风
@OSC_Ngoxge 完全不同的。。。你去了解一下规范。。。其中一个特性是,如果我的请求中没有包含 name 字段,那么直接在数据库查询中也不会获取这个字段的信息了,好像还可以自定义各字段过滤,一个接口可以实现 n 个功能对接了
张伯函
张伯函
GraphQL是一个类似RESTful一样的一个接口协议,不过更强大,更灵活
历史转折中的扁舟子
性能分析工具:http://www.codeyyy.com/java/11-50-66.html
WeiXiaodong
WeiXiaodong
swagger

GraphQL 基金会成立,将交由 Linux 基金会管理

11月7日消息,GraphQL 基金会宣布成立,并将由 Linux 基金会管理。GraphQL 基金会将专用于完善和稳定 GraphQL 生态系统,让 GraphQL 得到广泛关注和采用。 GraphQL 是 Facebook 开发的一个应...

2018/11/08 08:10

Github 为什么开放了一套 GraphQL 版本的 API?

背景 GitHub 宣布开放了一套使用 GraphQL 开发的公共 API。 GitHub 的 REST API 已经非常完善,设计得很优秀,很多公司开发自己的 REST API 时都会参考 GitHub,也有很多爱好者写了非常丰富的...

2016/10/23 07:49

Facebook 内部是如何使用 JavaScript 和 GraphQL 的

最近, 来自 Facebook 的 Lee Byron (@leebyron) 在Hashnode上主办了一场 AMA( Ask Me Anything )。 这里提出了许多有趣的问题,并且 Lee 透露了一些关于 Facebook 如何使用 React 、GraphQL...

2016/05/18 08:00

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

GraphGL教程

GraphGL教程 GraphQL - 简介 GraphQL - 环境设置 GraphQL - 架构 GraphQL - 应用程序组件 GraphQL - 示例 GraphQL - 类型系统 GraphQL - 架构 GraphQL - 解析器 GraphQL - 查询 GraphQL - 变...

03/05 14:46
7
0
GraphQL 基金会成立了:将托管于Linux 基金会管理

GraphQL 基金会在11月7日宣布成立,并将由 Linux 基金会管理。GraphQL 基金会将专用于完善和稳定 GraphQL 生态系统,让 GraphQL 得到广泛关注和采用。GraphQL 是 Facebook 开发的一个应用层数...

2018/12/17 09:11
14
0
在vue项目中集成graphql(vue-ApolloClient)

1.什么是graphql GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时 下图展示graphql所处的位置 2.优点 1.GraphQL API 有强类型 schema GraphQL schema是...

2018/11/09 16:03
71
0
GraphQL 是一种用于 API 的查询语言

GraphQL GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没...

02/12 18:20
3
0
灵活的API查询语言——GraphQL

本文简单的介绍了 GraphQL,希望能够帮助大家对这个方便的查询语言有一个简单的认识 GraphQL 是什么 GraphQL 是一种 API 查询语言,是一个对自定义类型系统执行查询的服务端运行环境。它相当...

2018/11/07 16:20
46
0
更轻松的使用GraphQL

# 更轻松的使用GraphQL # ## 引言 ## GraphQL是Facebook开发的一套数据查询解决方案,让我们先来看一下官方的定义: > GraphQL is a query language for your API, and a server-side runtim...

2017/11/01 19:51
307
0
REST 2.0 在此,它的名字叫 GraphQL

早期的 Web 早期网络的技术架构很简单。早期互联网上的网页使用静态的 HTML 文档,随后网站把动态的内容存储在数据库(例如:SQL)并使用 JavaScript 来进行交互。大多数网络的内容是通过桌面...

2018/08/14 15:39
56
0
[译] 将现有的 API 从 REST 迁移到 GraphQL

将现有的 API 从 REST 迁移到 GraphQL

2017/08/14 09:26
81
0
GraphQL 如何取代 Redux

简评:使用 GraphQL 可以大大简化客户端状态管理部分的代码。 ⚛️切换到React 故事背景:在 2016 年,Pathwright 的前端团队就开始将客户端的代码从 Backbone & Marionette 切换到 React。 ...

2018/09/12 14:09
58
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部