Genzhen / graphQL_study

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

graphQL_study

graphql 是一个套API 的查询语言,目标是替换REST API 。 2012年 facebook内部开始使用、2015年开源。语言规范中文翻译

优势

传统 web 应用通过开发服务给客户端提供接口是很常见的场景。而当需求或数据发生变化时,应用需要修改或者重新创建新的接口。长此以后,会造成服务器代码的不断增长,接口内部逻辑复杂难以维护。而 GraphQL 则通过以下特性解决这个问题:

  • 声明式。查询的结果格式由请求方(即客户端)决定而非响应方(即服务器端)决定。你不需要编写很多额外的接口来适配客户端请求
  • 可组合。GraphQL 的查询结构可以自由组合来满足需求。
  • 强类型。每个 GraphQL 查询必须遵循其设定的类型才会被执行。 也就是说,通过以上的三个特性,当需求发生变化,客户端只需要编写能满足新需求的查询结构,如果服务端能提供的数据满足需求,服务端代码几乎不需要做任何的修改。

graphql 服务端可以由各种语言实现 ,目前主流语言在github上均由响应的服务端 比如  go 、Java C++等20种语言。

js 实现 比较知名的是 meteor 的 apollo套装 官网 Apollo 除了提供服务端的实现之外还有 各种客户端。 有适配 vue、react angular 以及Android ios平台的客户端,屏蔽了数据请求层,前端只需要写graphql 即可完成数据操作

graphql 还有一个强大的接口调试工具graphiql 方便调试接口以及查看接口文档。

一些入门资料

About