REST 架构的替代方案 为什么说GraphQL是API的未来?
Managing enterprise accounts - GitHub Docs https://docs.github.com/en/graphql/guides/managing-enterprise-accounts
Resource limitations - GitHub Docs https://docs.github.com/en/graphql/overview/resource-limitations
为什么说GraphQL是API的未来?
https://mp.weixin.qq.com/s/Qj1eMnKX0osS-7rjLrSJLw
GitHub GraphQL API - GitHub Docs https://docs.github.com/en/graphql
Migrating from REST to GraphQL - GitHub Docs https://docs.github.com/en/graphql/guides/migrating-from-rest-to-graphql
相信大家对GraphQL早已不陌生,这一Facebook推出的接口查询语言,立志在简洁性和扩展性方面超越REST,并且已经被应用在很多复杂的业务场景中。GitHub这样描述他们为何对GraphQL青睐有加:
我们为API v4选择GraphQL,是因为它为我们的集成商提供了显著的灵活性。相比于REST API v3,它最强大的优势在于,你能够精确的定义所需要的数据,并且毫无冗余。通过GraphQL,你只需要一次请求就能取到通过多个REST请求才能获得的数据。
在GitHub的开发者文档中有较为完整的GraphQL API v4介绍,本文整理并翻译了其中的部分内容,并按以下章节组织,希望能给入门GraphQL或有兴趣从事GitHub App开发的同学以参考:
- 概念解释
- 使用方法
- 示范案例
- 文档指引
GraphQL查询语言本质上就是从对象中选择field”。
关于field,官方标准中还说:
所有的GraphQL操作必须指明到最底层的field,并且返回值为标量,以确保响应结果的结构明白无误
作者:Entronad
链接:https://www.zhihu.com/question/264629587/answer/954711367
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相信大家对GraphQL早已不陌生,这一Facebook推出的接口查询语言,立志在简洁性和扩展性方面超越REST,并且已经被应用在很多复杂的业务场景中。GitHub这样描述他们为何对GraphQL青睐有加:
我们为API v4选择GraphQL,是因为它为我们的集成商提供了显著的灵活性。相比于REST API v3,它最强大的优势在于,你能够精确的定义所需要的数据,并且毫无冗余。通过GraphQL,你只需要一次请求就能取到通过多个REST请求才能获得的数据。
在GitHub的开发者文档中有较为完整的GraphQL API v4介绍,本文整理并翻译了其中的部分内容,并按以下章节组织,希望能给入门GraphQL或有兴趣从事GitHub App开发的同学以参考:
- 概念解释
- 使用方法
- 示范案例
- 文档指引
作者:Entronad
链接:https://www.zhihu.com/question/264629587/answer/954711367
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
特点
- 需要什么就获取什么数据
- 支持关系数据的查询
- API无需定义各种路由,完全数据驱动
- 无需管理API版本,一个版本持续演进
- 支持大部分主流开发语言和平台
- 强大的配套开发工具
GraphQL 作为通用的 REST 架构的替代方案而被开发出来,它允许客户端只请求其需要的数据——不多也不少,一切在客户端的主导下。在一个 RESTful 架构下,因为后端开发人员定义在各个 URL 的资源上返回的数据,而不是前端开发人员来提出数据需求,使得按需获取数据会非常困难。
[译]为什么选用 GraphQL:它的优点、缺点和备选方案 - 知乎 https://zhuanlan.zhihu.com/p/39293150
[译]为什么选用 GraphQL:它的优点、缺点和备选方案 - 知乎 https://zhuanlan.zhihu.com/p/39293150
[译]为什么选用 GraphQL:它的优点、缺点和备选方案 - 知乎 https://zhuanlan.zhihu.com/p/39293150
最新文章
- java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET
- osharp3使用经验:整合DbContextScope 文章 1
- MySql_十六进制值
- twitter storm源码走读之6 -- Trident Topology执行过程分析
- CodeIgniter(CI 3.0)分页类实践记录
- 使用jpeglib库实现bmp转jpg
- CSS中overflow:hidden
- AVL树----java
- Spring @Transactional使用的示例
- JS对象创建常用方式及原理分析
- [原创]Faster R-CNN论文翻译
- oracle 数据库——知识点总结(加示例)
- mvn 手动安装jar 到本地库
- 16进制字符串转QByteArray,char转16进制字符串
- RFC2616-HTTP1.1-Status Code(状态码规定部分—单词注释版)
- 基于bootstrap-multiselect.js的下拉框联动
- hibernate自带的注解和jpa注解的冠希
- [转]MegCup2015初赛题
- 移动端 HTML5 <;video>; 视频播放优化实践
- tf随笔-1
热门文章
- python初学者-使用if条件语句判断成绩等级
- webapplicationContext之ServletContext等相关概念说明
- Spring Boot 自动配置之@Conditional的使用
- springboot容器启动顺序之@Configuration ContextRefreshedEvent事件初始化 ApplicationRunner
- Java图片的灰度处理方法
- Docker进行MySQL主从复制操作
- node.js 爬取图片
- JavaScript 内存详解 &; 分析指南
- 容器编排系统K8s之crd资源
- Java入门-jdk安装与环境搭建