[译] 怎样使用GraphQL - 1.介绍

英文原版地址:https://www.howtographql.com/...前端


介绍

GraphQL是一个新的API标准,具备高效,强大,灵活的特性,旨在替代REST模式。GraphQL由Facebook公司开发并开源,目前由来自世界各地的公司和开发者共同维护。数据库

API已经在软件基础设施中变得无处不在。总之, 一个API定义了客户端如何从服务器加载数据。后端

做为GraphQL的核心点,它支持声明式数据获取,客户端能够从接口中,精确指定须要的数据。不一样于多个后端接口返回固定的数据结构,一个GraphQL服务仅仅暴露一个接口,并精确的响应客户端想要的数据。前端框架

GraphQL - 一种API查询语言

今天,大多数应用都须要从服务器获取存在数据库中的数据,API须要提供获取数据的接口,以知足应用的须要。服务器

GraphQL每每被误认为是一个数据库技术。这是不正确的,GraphQL是一种API查询语言,而不是数据库的查询语言。因此说,它是数据库无关的,能够用在任何使用API的场景中。网络

一个更有效的REST模式替代者

REST模式是目前流行的从服务端获取数据的方式。 当REST模式提出时,客户端程序都相对简单,而且发展速度也远落后于目前。REST模式也能很好的适用于诸多应用。然而,过去几年里,API领域有了根本性的变化。特别是,如下三个因素,对API的设计方式发出了挑战:数据结构

1.日益增多的移动端使用,须要数据加载过程更有效率框架

在移动端使用量变多的场景下,低功耗的设备和较差的网络环境是Facebook开发GraphQL最初的缘由。GraphQL经过最小化网络传输时所须要的数据量,改善了这种环境中的应用使用状况。spa

2.各类不一样的前端框架和平台设计

面对各类各样的前端框架和不一样终端里的应用,开发并维护一套通用的API,用来知足左右需求,变得愈来愈难。可是经过GraphQL,客户端能够精确获取所需数据。

3.快速开发&快速添加特性

持续部署已成为许多公司标准,快速迭代和频繁的产品更新也变的不可或缺。若是使用REST模式API,服务端每每须要修改对外暴露的数据接口,来知足客户端在需求和设计上的变更。这阻碍了快速开发和产品迭代。

历史,环境和采用

GraphQL并非React开发者专用的

Facebook在2012年开始,在他们的原生移动应用中使用GraphQL。但有趣的是,GraphQL目前主要被采用在Web相关技术环境里,反而在移动应用中得到的影响力很小。

Facebook的第一次公开谈论GraphQL是在React.js Conf 2015,并在不久以后宣布了他们的开源计划。由于Facebook老是在结合React谈论GraphQL,因此对于非React开发人员来讲,须要花费一段时间才能明白GraphQL毫不是一个限于使用React的技术。

youtube截图
Dan Schafer & Jing Chen在React.JS Conf 2015公开介绍GraphQL。

一个迅速发展的社区

事实上,GraphQL能够在全部客户端与API通讯的地方使用。有趣的是,包括Netflix和Coursera的一些公司也曾试探过类似的方案,使API交互更有效率。Coursera设想了一种相似的技术,让客户端指定其数据要求,Netflix甚至已经开源了他们的Falcor解决方案。但在GraphQL开源后,Coursera取消了计划,并搭上了GraphQL的车。

今天,GraphQL被许多不一样的公司(如GitHub,Twitter,Yelp和Shopify)用于生产。

公司logo

尽管如此年轻的技术,GraphQL已经被普遍采用。点击了解还有谁使用GraphQL

列出几个专一于GraphQL的组织,有GraphQL SummitGraphQL EuropeGraphQL RadioGraphQL Weekly

相关文章
相关标签/搜索