restful api接口规范_简单谈谈RPC、RestFul和GraphQL

本文探讨了REST、RESTful、RPC和GraphQL的区别与应用场景。REST代表表现层状态转移,RESTful是指基于REST架构的统一接口。RPC是远程过程调用,与RESTful相比,其耦合度更高。而GraphQL作为一种API查询语言,允许客户端按需获取数据,解决了RESTful接口被滥用的问题。在选择技术时,需结合应用场景,例如稳定服务交互可选RPC,小型Web系统适合RESTful,大型系统则可利用GraphQL提高开发效率。
摘要由CSDN通过智能技术生成

fcb7342c23a85833b4e6ecbbdf55429e.png

REST和RESTFul

其实无论是RPC、RESTFUL、还是GraphQL,都和REST这个词有千丝万缕的关系的。所以在文章的开篇,先简单介绍下REST和RESTFul。REST和RESTFul这两个词经常会出现在开发者的眼中,我相信很多开发者都不知道它们的区别是什么,也有很多开发者认为REST就是RESTFul。那么它们真的就是一个东西吗?下面我们就来探究下它们之间的关系。

REST

REST的全称是:Representational State Transfer ,它的直接中文翻译是:表现层状态转移。这个词,基本上没什么人能直接看懂它表达的意思。从系统架构的角度上来讲,它表示一种分布式超媒体系统的架构风格。也就是说,它代表一种系统架构的风格。在这里我们不深入讨论REST架构是怎样的,我们只需要知道,现在大部分人接触的前后端分离的架构一般都是REST风格的就行了。

RESTFul

那RESTFul又是什么呢?RESTFul是指:基于REST架构风格的Server端为其它组件(这个其它组件可以是前端应用,也可以是其它后端系统)提供交互的一个统一接口。这样做的目的是,简化整体系统架构,改善交互的可见性。也避免了Server端组件的内部逻辑泄露到其它组件的可能性。实现Server端与它提供的服务解耦的目标,这使组件之间独立演进成为了可能。

从架构角度来看,我们所说的解耦一般被会理解为:前后端解耦,又或者后端服务和后端服务之间的解耦。但是从REST的架构上来说,它其实是指:Server端与它提供的服务解耦。这样带来的好处是:提供的服务是可信任的,不会因为Server的演变而发生改版。这是Rest架构的一个非常重要的特点。

简单来说,我们最常见的基于HTTP协议的服务端接口、API等,就是我们说的RESTFul接口。

RPC

RPC的全称是Remote Procedure Call,即远程过程调用,与之对应的是本地过程调用。为了方面大家理解什么是RPC,我们先通过简单的代码来看看本地过程调用是怎样的。

int x = -100;

int y = -99;

int result = Math.max(x, y);

System.out.println("max = " + result);

调用 Math.max就是一个本地过程调用。即通俗来讲,我们调用我们本地代码中的提供的一些API的过程,就称为本地过程调用。

远程过程调用,最终调用的API不是运行在本地的。这个提供服务的程序有可能是运行在不同进程,甚至是不同机器上的。RPC的调用过程从代码上来看,和我们调用本地的代码其实

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值