REST API和RPC API的区别
REST 和 RPC 是web开发中广泛用于构建api(应用程序编程接口)的设计架构。它是一组指令,允许两个系统共享资源和服务。客户机向服务器创建一个请求,服务器用JSON或XML格式的数据响应它。
REST APIs
它代表具象状态传输(Representational State Transfer, REST),它是一种体系结构样式,定义了一组用于创建web服务的约束和协议。REST API是一种以非常简单和灵活的方式访问web服务的方法,不需要任何处理。REST API端点是一个URL,它利用HTTP动词在资源上执行CRUD(创建读更新删除)操作。这些HTTP动词是GET、POST、PATCH、PUT和DELETE。它专注于从服务器向客户端提供资源。
REST api的优点
- 它们具有很强的可扩展性,因为客户机和服务器是解耦的,将来很容易扩展。
- 简单,标准化,易于使用。
- 使用已有的HTTP特性。
- 它们具有高性能,因为它们具有缓存功能。
- 允许使用OAuth协议来验证REST请求的基于标准的保护。
- 通过序列化XML或JSON格式的数据带来灵活性。
REST api的缺点
- REST API的有效负载相当大,因此当您需要一个字段时,整个文件会返回。
- 它失去了在REST中维护状态的能力。
RPC APIs
远程过程调用(Remote Procedure Call, RPC)是一种用于构造分布式、基于客户机-服务器的应用程序的方法。它也被称为子例程调用或函数调用。它基于传统的本地过程调用,因此被调用过程不必在调用过程执行时存在于同一地址空间中。RPC非常适合客户机-服务器交互,其中控制流停留在两者之间。客户端和服务器并不同时执行,而是执行线程从一个跳到另一个。
RPC api的优点
- 它们在本地和分布式环境中提供使用操作应用程序。
- 它提供了抽象。
- 它们具有轻量级的有效负载,因此可以提供高性能。
- 它们很容易理解,因为动作是URL的一部分。
RPC api的缺点
- 它可以以多种方式实现,因为它没有很好地标准化。
- 它没有硬件架构的灵活性。
下面是REST和RPC之间的差异表
S.No. | REST API | RPC API |
---|---|---|
1 | REST是面向资源。 | RPC是行动导向的。 |
2 | 支持HTTP方法GET、POST、PUT、PATCH和DELETE。 | RPC只支持GET和POST请求。 |
3 | 它为硬件架构提供了灵活性 | RPC对于硬件架构没有灵活性 |
4 | 它支持超媒体和超链接 | 不支持超媒体和超链接 |
5 | REST允许指定content -type或接受报头 | 对于XML- rpc,需要一些数据类型的有效负载作为XML。 |