博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GraphQL入门
阅读量:5370 次
发布时间:2019-06-15

本文共 1028 字,大约阅读时间需要 3 分钟。

上半年公司分享会,选了个GraphQL的主题,只是做了个简单的分享,东拼拼西凑凑,算是完成了吧

一 GraphQL是什么?

一种用于 API 的查询语言

 

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

一种用于API的查询语言,听着像是sql语言一样定义了数据的增删改查操作。一套易于理解的完整描述其实就是后面提到的schema,后面的功能都是以这个作为了基础。

特地准备了个简单的例子,通过applo的例子代码搞的,我们下面的例子代码都是以这个场景设计的,比较简单没时间完善

     

 

二  API数据的描述 -- Schema 模式(在服务器端定义的)

     graphql-todolist-demo/server/src/schema.js

下面例子里面的数据描述文件,里面有一些基础类型和自定义对象类型

下面这个是定义增删改(Mutation),查(Query),实时通信(Subscription)

 server跑起来会有个playground的页面对接口进行调试,下面是体现下实际接口请求返回的数据:

通过查询我们可以发现,请求的是怎么样的数据结构,返回的就是对应的结构

 

也可以定义一些变量,这样就可以复用

Subscription,实例在demo里面有,应为ppt是录了个视频,这边就不贴例子了

三 GraphQL的优点

1.强类型 Schema,有了强类型的Schema,一切都变成了可能

2.按需要加载,减少带宽,不必要的数据查询

3.更好的快速开发产品

下面特地举了个接口组装的例子,就是获得了第3方的schema定义,通过nodejs去调用第3放的Graphql的接口,代码更易懂

我们可以看到,一切的基础都是schema文件。规范了服务器端和客户端开发,成为了服务器端和客户端之间的桥梁

四 GraphQL的缺点

1.不可预测的执行,对于同一个操作,由于请求体的结构不一样,对应的接口复杂度是不可预知的。由于灵活性,还有n+1问题,

2.也没办法查询不限深度的数据(树),对于接口权限和接口调用权限的限制都不好处理。

 

转载于:https://www.cnblogs.com/legu/p/11288085.html

你可能感兴趣的文章
WebService学习总结(二)--使用JDK开发WebService
查看>>
Tizen参考手机RD-210和RD-PQ
查看>>
竞价广告系统-位置拍卖理论
查看>>
策略模式 C#
查看>>
[模板]树状数组
查看>>
[HDU 6447][2018CCPC网络选拔赛 1010][YJJ's Salesman][离散化+线段树+DP]
查看>>
设计模式学习的好方法
查看>>
感谢Leslie Ma
查看>>
几种排序方法
查看>>
查看数据库各表的信息
查看>>
第一阶段测试题
查看>>
第二轮冲刺第五天
查看>>
图片压缩
查看>>
Hadoop-2.6.5安装
查看>>
ES6思维导图
查看>>
第四周作业
查看>>
20151121
查看>>
线段重叠 (思维好题)
查看>>
Codeforces Round #413 C. Fountains (线段树的创建、查询、更新)
查看>>
SBuild 0.1.5 发布,基于 Scala 的构建系统
查看>>