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
REST 架构的替代方案 为什么说GraphQL是API的未来?的更多相关文章
- GraphQL&DSL&API网关
车联网服务non-RESTful架构改造实践 导读 在构建面向企业项目.多端的内容聚合类在线服务API设计的过程中,由于其定制特点,采用常规的restful开发模式,通常会导致大量雷同API重复开 ...
- GraphQL & REST API
GraphQL & REST API GraphQL https://mp.weixin.qq.com/s/X-jm7jLXWmMmLBVgHfkRiQ https://webapplog.c ...
- 一种不错的 BFF Microservice GraphQL/REST API 层的开发方式
云原生(Cloud Native)Node JS Express Reactive 微服务模板 (REST/GraphQL) 这个项目提供了完整的基于 Node JS / Typescript 的微服 ...
- 微服务架构学习与思考(11):开源 API 网关02-以 Java 为基础的 API 网关详细介绍
微服务架构学习与思考(11):开源 API 网关02-以 Java 为基础的 API 网关详细介绍 上一篇关于网关的文章: 微服务架构学习与思考(10):微服务网关和开源 API 网关01-以 Ngi ...
- 架构设计(ASP.NET MVC+Knockout+Web API+SignalR)
最近忙于重构项目的架构设计,没有时间发博客,也没有时间回复邮件及博文评论,忘各位见谅: 今天先发布架构设计图,同样没有时间写相关的介绍也没有时间回复评论,所以就不发在首页,希望给看到的朋友一些参考,同 ...
- graphql 新API 开发方式
我们知道 GraphQL 使用 Schema 来描述数据,并通过制定和实现 GraphQL 规范 定义了支持 Schema 查询的 DSQL (Domain Specific Query Langua ...
- 前谷歌首席 Java 架构师谈如何设优秀的 API
随着近来软件规模的日益庞大,API编程接口的设计变的越来越重要.良好的接口设计可以降低系统各部分之间的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合度,从而提高系统的维护性和稳定性. Joshu ...
- 学习笔记TF048:TensorFlow 系统架构、设计理念、编程模型、API、作用域、批标准化、神经元函数优化
系统架构.自底向上,设备层.网络层.数据操作层.图计算层.API层.应用层.核心层,设备层.网络层.数据操作层.图计算层.最下层是网络通信层和设备管理层.网络通信层包括gRPC(google Remo ...
- [简记] github 上的 GraphQL v4 API
突发奇想,想用github做一个支持rss的blog体系,或者就是知识管理体系,简单看了下,把测试用的暂存起来 # Type queries into this side of the screen, ...
随机推荐
- 小题大做 | Handler内存泄露全面分析
前言 嗨,大家好,问大家一个"简单"的问题: Handler内存泄露的原因是什么? 你会怎么答呢? 这是错误的回答 有的朋友看到这个题表示,就这?太简单了吧. "内部类持 ...
- Java:利用BigDecimal类巧妙处理Double类型精度丢失
目录 本篇要点 经典问题:浮点数精度丢失 十进制整数如何转化为二进制整数? 十进制小数如何转化为二进制数? 如何用BigDecimal解决double精度问题? new BigDecimal(doub ...
- navicat12.0.26如何激活
首先准备好所需工具链接:https://pan.baidu.com/s/1EHATRC0M34n-aNteIyBXbw 密码:r7tf 下载后如图分别为64位和32位. 操作时需要断掉网络 Nav ...
- Servlet+JSP+JDBC综合案例
层级关系: 一.Util包 包里面写一个JDBCTools.java文件 功能:实现数据库连接返回一个Connection对象,并且可以实现数据库相应资源的关闭! 注意事项: 1.定义成员变量 1 p ...
- 关于线上JVM动态参数设置调优
p.p1 { margin: 0; -webkit-hyphens: auto; font: 16px Arial; color: rgba(68, 68, 68, 1); -webkit-text- ...
- Linux 网络排错检查思路
Linux 网络排错检查思路 graph TD A[当网络不通时] --> B{ping想要访问的地址,<br>如www.runoob.com} B --> |不通| C{pi ...
- 漫谈JSON Web Token(JWT)
一.背景 传统的单体应用基于cookie-session的身份验证流程一般是这样的: 用户向服务器发送账户和密码. 服务器验证账号密码成功后,相关数据(用户角色.登录时间等)都保存到当前会话中. 服务 ...
- mysql 双主复制 centos7
mysql 安装请看:http://www.cnblogs.com/leohe/p/6839705.html 双主复制设置 1. 两台虚拟机,都是 centos7 主: 10.1.1.115 从: 1 ...
- 腾讯IOT安卓开发初探
目录 腾讯IOT 安卓开发初探 Tecent IOT 开发平台的使用 新建项目 创建产品 添加自定义功能 设备开发 微信小程序配置 面板配置 新建设备 使用设备 安卓开发 前置配置 data.json ...
- jdbc事务、连接池概念、c3p0、Driud、JDBC Template、DBUtils
JDBC 事务控制 什么是事务:一个包含多个步骤或者业务操作.如果这个业务或者多个步骤被事务管理,则这多个步骤要么同时成功,要么回滚(多个步骤同时执行失败),这多个步骤是一个整体,不可分割的. 操作: ...