干掉 RESTful API !
程序员的成长之路
共 6147字,需浏览 13分钟
· 2020-12-11
阅读本文大概需要 10 分钟。
来自:toutiao.com/i6833818331884028419
滥用REST接口,导致大量相似度很高(具有重复性)的API越来越冗余。 对于前端而言:REST API粒度较粗,难以一次性符合前端的数据要求,前端需要分多次请求接口数据。增加了前端人员的工作量。 对于后端而言:前端需要的数据往往在不同的地方具有相似性,但却又不同,比如针对同样的用户信息,有的地方只需要用户简要信息(比如头像、昵称),有些地方需要详细的信息,这就需要开发不同的接口来满足这些需求。当这样的相似但又不同的地方多的时候,就需要开发更多的接口来满足前端的需要。增加了后端开发人员的工作量和重复度。
GraphQL简介
GraphQL是一种新的API标准,它提供了一种比REST更有效、更强大和更灵活的替代方案。 它是由Facebook开发并开源的,现在由来自世界各地的公司和个人组成的大型社区维护。 GraphQL本质上是一种基于api的查询语言,现在大多数应用程序都需要从服务器中获取数据,这些数据存储可能存储在数据库中,API的职责是提供与应用程序需求相匹配的存储数据的接口。 它是数据库无关的,而且可以在使用API的任何环境中有效使用,我们可以理解为GraphQL是基于API之上的一层封装,目的是为了更好,更灵活的适用于业务的需求变化。
GraphQL 对比 REST API 有什么好处?
GraphQL 思考模式
GraphQL获取数据三步骤
GraphQL执行逻辑
使用了GraphQL就要完全抛弃REST了吗? GraphQL需要直接对接数据库吗? 使用GraphQL需要对现有的后端服务进行大刀阔斧的修改吗?
GraphQL应用的基本架构
GraphQL特点总结
声明式数据获取(可以对API进行查询): 声明式的数据查询带来了接口的精确返回,服务器会按数据查询的格式返回同样结构的 JSON 数据、真正照顾了客户端的灵活性。 一个微服务仅暴露一个 GraphQL 层:一个微服务只需暴露一个GraphQL endpoint,客户端请求相应数据只通过该端点按需获取,不需要再额外定义其他接口。 传输层无关、数据库技术无关:带来了更灵活的技术栈选择,比如我们可以选择对移动设备友好的协议,将网络传输数据量最小化,实现在网络协议层面优化应用。
GraphQL支持的数据操作
查询(Query):获取数据的基本查询。 变更(Mutation):支持对数据的增删改等操作。 订阅(Subscription):用于监听数据变动、并靠websocket等协议推送变动的消息给对方。
GraphQL的核心概念:图表模式(Schema)
对于数据模型的抽象是通过类型(Type)来描述的,每一个类型有若干字段(Field)组成,每个字段又分别指向某个类型(Type)。这很像Java、C#中的类(Class)。 GraphQL的Type简单可以分为两种,一种叫做Scalar Type(标量类型),另一种叫做Object Type(对象类型)。
标量类型(Scalar Type)
String Int Float Boolean Enum ID
对象类型(Object Type)
类型修饰符(Type Modifier)
列表:[Type] 非空:Type! 列表非空:[Type]! 非空列表,列表内容类型非空:[Type!]!
其他类型
客户端实现
推荐阅读:
IDEA 上位?不!Eclipse Theia 1.0 发布!
微服务架构:注册中心 ZooKeeper、Eureka、Consul 、Nacos 对比!
微信扫描二维码,关注我的公众号
朕已阅
评论
Stability AI开放Stable Diffusion 3 API,在线免费使用
「Stability AI」宣布开放其最新文本到图像生成模型「Stable Diffusion 3」的API接口,供开发者和企业使用。该模型采用创新的多模态扩散转换器架构,在字体、细节还原、提示理解等方面表现优异,评测结果超越了业内其他顶尖系统。与DALL-E 3和Midjourney v6等最先进
IQ前端
0
【第124期】Vue 3 组合式 API 的瑞士军刀(VueUse)
概述 今天,我们要深入探索一个强大的工具集——VueUse。它为 Vue 3 的组合式 API(Composition API)提供了超过 200 个实用函数,让你的开发工作更加得心应手。官方网站:https://vueuse.org/VueUse 是什么?VueUse 的官方网站是 https:
前端微服务
0
腾讯云 4.8 故障原因曝光:因 API 新版本兼容性不够和配置数据灰度机制不足
2024 年 4 月 8 日 15 点 23 分,腾讯云团队收到告警信息,云 API 服务处于异常状态;随即在腾讯云工单、售后服务群以及微博等渠道开始大量出现腾讯云控制台登录不上的客户反馈。经过故障定位发现,客户登录不上控制台正是由云 API 异常所导致。云 API 是云上统一的开放接口集合,客户可
开源Linux
10
React 并发 API 实战,这几个例子看懂你就明白了
本文适合对React 并发 API感兴趣的小伙伴阅读。欢迎关注前端早茶,与广东靓仔携手共同进阶~目录什么是并发它和 React 有什么关系中断和切换是如何工作的那 Suspense 呢?如何启动 transition结束语什么是并发并发是...
前端大神之路
0
SpringBoot接口安全快试试用 API Key 来保护吧
星标▲Java学习之道▲一起成长,一起学习~目录1、概述2、REST API Security3、用API Keys保护REST API4、测试文章来源: https://www.baeldung.com/spring-boot-api-key-secret1、概述安全性在REST API开发中扮演着重要...
Java学习之道
0
全网显示IP归属地,准确率99.9%,这个开源的 API 离线库强大到离谱!
GPT-4 Plus账号又降价了! Sora社群,正式上线! 最新版Pycharm 2022.3最新激活教程,有效期到2099年! 1 前言 经常浏览小视频或各类帖子的朋友们可能已经注意到,目前许多网络平台都会显示作者和评论区用户的IP归属...
印象Python
0
【国产】API接口管理平台的产品设计与搭建讲解
【国产接口管理平台】PhalApi Pro (π框架专业版) PhalApi Pro (发音:π框架专业版),是一款国产企业级API接口管理平台,可以零代码、快速搭建API接口开发平台、接口开放平台、接口管理平台。基于PhalApi开源接口开发...
dogstar
0
新接口来啦,用户体系套件API上线了~
用户体系套件API this api created by 2024-02-28 用户体系套件查询API接口,这个是RollToolsApi通用系列接口的其中一个,内部包含了10个小接口,可以实现用户的注册,登录,获取token,设置用户信息,获取用户信息...
蚂蚁的伟大
0