- ASP.NET Core与RESTful API 开发实战
- 杨万青
- 438字
- 2020-08-27 11:23:25
1.1.4 对REST的错误理解
理解REST及其约束,将有助于我们设计RESTful服务或RESTful API。然而在现实中,人们仍然对REST有错误的认识,认为只要有某种特性的API就是RESTful API。这些对REST错误的认识可能包含但不限于以下几种情况。
任何使用了HTTP方法的API。
返回JSON的API。
执行增删查改的API。
尽管REST风格的API同样具有上述特点并能够完成上述功能,然而这并不是说具有上述特点的API就是RESTful API。只有遵守了REST约束的API,才能够称为RESTful API。另外,Richardson成熟度模型是衡量API成熟度的一种方式,该模型进一步描述了各种Web API的特征,根据该模型,只有最成熟的API才是RESTful API。在7.4节中,将会更详细地介绍Richardson成熟度模型。
除了REST外,另一种常见的API风格是RPC风格,即远程过程调用(Remote Procedure Call)。下面是一个典型的RPC风格的API。
GET api.domain.com/getUserInfo
GET api.domain.com/UpdateUserInfo
REST风格与RPC风格的区别如下。
在关注点方面,REST面向资源,RPC面向功能。
在API端点方面,REST的端点是名词、是资源或资源集合,而RPC的端点是动词、是方法名。
在执行特点方面,REST对资源执行操作,RPC执行服务器上的方法。
在返回结果方面,REST返回请求的资源,而RPC则返回调用方法的执行结果。