小试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

目录
相关文章
|
10月前
|
前端开发 数据管理 API
探究GraphQL在前端开发中的实际应用
在如今越来越复杂的前端应用程序中,数据管理变得更加困难,因此GraphQL成为了越来越受欢迎的解决方案。本文将介绍GraphQL在前端开发中的应用,以及它对开发过程所带来的好处。
|
4月前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
101 1
|
7月前
|
缓存 前端开发 JavaScript
"React与GraphQL Apollo Client的神奇之处:如何用高效数据驱动应用让你的项目一鸣惊人?"
【8月更文挑战第31天】在当今的Web开发领域,数据驱动应用已成主流。本文章深入探讨了React——一个用于构建用户界面的流行JavaScript库,与GraphQL及Apollo Client结合使用时如何助力开发者高效创建数据驱动应用。通过示例代码,文章展示了React与GraphQL Apollo Client在实际项目中的应用方法,并总结了其优势及最佳实践,为读者提供了全面的技术指南。
57 0
|
存储 Java API
大厂都在实践的GraphQL,你了解吗?
大厂都在实践的GraphQL,你了解吗?
229 0
|
前端开发 API PHP
laravel框架总结
laravel框架总结
127 0
|
Web App开发 NoSQL 中间件
【CuteJavaScript】GraphQL真香入门教程 下
【CuteJavaScript】GraphQL真香入门教程 下
169 0
|
缓存 前端开发 JavaScript
【CuteJavaScript】GraphQL真香入门教程 上
【CuteJavaScript】GraphQL真香入门教程 上
202 0
|
缓存 前端开发 API
用了6个月的GraphQL,真香!
本文作者用 GraphQL 在后端做了 6 个月的项目,分享了自己体验 GraphQL 的优点和缺点。作者认为 GraphQL 提供的灵活性让其缺点不足为道,强烈建议使用 GraphQL 作为 REST API 的替代品。
|
JSON Unix API
graphql学习(五)
今天给之前的demo增加登录验证. 现在验证流行使用JWT(JSON web tokens),我们也选择用github.com/dgrijalva/jwt-go. 还是从models开始,增加user.
1210 0
graphql学习(五)
|
JavaScript 前端开发 API