本文概述
- 0级:POX沼泽
- 级别1:资源
- 级别2:HTTP动词
- 第3级:超媒体控件
有四个级别:
- 0级:POX沼泽
- 级别1:资源
- 级别2:HTTP动词
- 第3级:超媒体控制
文章图片
0级:POX沼泽 级别0也称为POX(普通旧XML)。在级别0, HTTP仅用作用作远程交互的传输协议。它没有像其他HTTP方法和HTTP缓存一样利用HTTP的优势。要获取和发布数据, 我们将请求发送到相同的URI, 并且只能使用POST方法。这些API仅使用一种URI和一种称为POST的HTTP方法。简而言之, 它以REST样式公开SOAP Web服务。
例如, 特定公司可能有许多客户。对于所有不同的客户, 我们只有一个端点。要执行诸如get, delete, update之类的任何操作, 我们使用相同的POST方法。
要获取数据:http:// localhost:8080 / customer
【理查森成熟度模型】要发布数据:http:// localhost:8080 / customer
在以上两个URI中, 我们使用了相同的URI和方法来获取和发布客户。
级别1:资源 当一个API可以区分不同的资源时, 它可能处于级别1。它使用多个URI。每个URI都是特定资源的入口点。它使用适当的URI公开资源。级别1通过将庞大的服务端点分解为多个不同的端点来解决复杂性。它还仅使用一种HTTP方法POST来检索和创建数据。
例如, 如果我们想要特定产品的列表, 则可以访问URI http:// localhost:8080 / products。如果我们想要特定的产品, 请浏览URI http:// localhost:8080 / products / mobile。
构建URI时, 请记住以下几点:
- 使用域和子域对资源进行逻辑分组或分区。
- 使用/表示层次关系。
- 使用和; 表示非等级关系。
- 使用-和_提高可读性。
- 使用&分隔参数。
- 避免包括文件扩展名。
对于所有请求, 我们不会使用单个POST方法。我们在请求资源时使用GET方法, 而在我们想要删除资源时使用DELETE方法。另外, 请使用应用程序协议的响应代码。
例如, 要获取客户, 我们发送带有URI http:// localhost:8080 / customers的请求, 然后服务器发送正确的响应200 OK。
下表显示了HTTP动词及其用法:
动词 | 安全与幂等 | 用法 |
---|---|---|
GET | Y/Y | 它检索信息。 |
POST | N/N | 它用于在服务器上执行各种操作, 例如创建新资源, 更新现有资源或对一个或多个资源进行混合更改。 |
DELETE | N/Y | 用于删除资源。 |
PUT | N/Y | 它用于更新或替换现有资源或使用客户端指定的URI创建新资源。 |
HEAD | Y/Y | 它用于检索与GET响应相同的标头, 但响应中没有任何正文。 |
OPTIONS | Y/Y | 它用于查找任何资源支持的HTTP方法列表或ping服务器。 |
TRACE | Y/Y | 它用于调试, 它回显已收到的回头信息。 |
例如, 如果我们向客户发送GET请求, 我们将使用自记录的Hypermedia以JSON格式为客户获得响应。
下图显示了该模型的概述:
文章图片
推荐阅读
- Spring Boot自动配置和分派器Servlet
- RESTful Web服务简介
- 在UserResource上更新POST和DELETE方法以使用JPA
- 使用路径变量增强Hello World服务
- 创建发布实体以及与用户实体的多对一关系
- RESTful服务的国际化
- 将RESTful服务连接到JPA
- 为RESTful服务实现HATEOAS
- java|web3js基本使用