小试GraphQL

简介: 小试GraphQL

之前做的需求,基本都是REST风格,以github提供的api为例,比较二者差异。试用GraphQL,找寻其独到之处


REST

REST

  • 一个URI代表一种资源
  • 通过HTTP动词对资源进行操作


创建一个仓库为例

微信截图_20230926164443.png

image.png

GET,

PATCHDELETE类似



GraphQL

  • GraphQL的endpoint只有一个
  • 所有请求都是POST


可以在 Exploer左边写查询,右边显示结果。

查询当前登录的用户名:

微信截图_20230926164505.png

查询Go项目当前的star数:

微信截图_20230926164547.png

GraphQL的endpoint只有一个,即

https://api.github.com/graphql

使用Postman:

微信截图_20230926164600.png

使用querymutation来区分是查询还是修改

微信截图_20230926164631.png

二者区别

  • REST一个URI就是一个资源,GraphQL只有一个URI
  • REST返回所有的内容,response体积较大,GraphQL可以只返回需要的数据,返回值体积小

GraphQL是一种语言,有自己的语法和类型系统

微信截图_20230926164642.png

会有错误提示~

微信截图_20230926164713.png

GraphQL的优势:

  • 取你所需要的数据,不多也不少

          n+1问题

  • nesting(嵌套查询)

           比如想取一个pr的commits、comment、reviews,用REST需要请求四次,然后还需要对返回值进行组装;而用GraphQL则只需要一次请求,拿到的就是需要的数据

微信截图_20230926164726.png

资源孤岛 (REST) vs Graph(GraphQL)

graphql-voyager

image.png

  • 强类型(每一个GraphQL的请求发到服务端之后,服务端都会进行校验,不通过会报错)

Migrating from REST to GraphQL

微信截图_20230926164809.png

目录
相关文章
|
3月前
|
前端开发 JavaScript API
【第43期】一文了解开源框架Gatsby
【第43期】一文了解开源框架Gatsby
33 0
|
3月前
|
API 开发者 网络架构
从REST到GraphQL:探究GraphQL的概念与实践
RESTful API曾经是互联网应用程序的主流,但它也存在着一些限制。随着GraphQL的出现,开发者们可以更加自由地定义和查询API,提高了应用程序的灵活性和可扩展性。本文将深入探讨GraphQL的概念和实践,并介绍如何在应用程序中使用GraphQL。
22 6
|
7月前
|
消息中间件 物联网 Linux
开源项目: 造一系列常用的Linux应用API轮子
开源项目: 造一系列常用的Linux应用API轮子
74 0
开源项目: 造一系列常用的Linux应用API轮子
|
8月前
|
存储 Java API
大厂都在实践的GraphQL,你了解吗?
大厂都在实践的GraphQL,你了解吗?
129 0
|
前端开发
前端知识学习案例-GraphQl速览
前端知识学习案例-GraphQl速览
37 0
前端知识学习案例-GraphQl速览
|
缓存 搜索推荐 JavaScript
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
背景 最近,栈长发现某些国内的开源项目都使用到了 Knife4j 技术,看名字就觉得很锋利啊! 是不是这样的缩写呢: Knife4j = Knife for Java ? Java 匕首? 看起来很牛逼的样子,当然,这是我简单的猜测,从字面上并不能猜到它是干嘛用的! 那么它究竟是一个什么样的框架呢?
|
前端开发 JavaScript 小程序
从GraphQL到前端数据管理的革命 - GraphQL干货笔记
你知道吗?FaceBook、GitHub,Pinterest,Twitter,Sky,纽约时报,Shopify,Yelp这些大公司已经在使用GraphQL规范的接口规范了。再不学习就落后了。
264 0
|
缓存 前端开发 JavaScript
【CuteJavaScript】GraphQL真香入门教程 上
【CuteJavaScript】GraphQL真香入门教程 上
151 0
|
Web App开发 NoSQL 中间件
【CuteJavaScript】GraphQL真香入门教程 下
【CuteJavaScript】GraphQL真香入门教程 下
111 0
|
中间件
FastAPI 学习之路(三十)中间件
FastAPI 学习之路(三十)中间件
FastAPI 学习之路(三十)中间件