理查森成熟度模型

Leonard Richardson分析了一百种不同的Web服务设计,并根据它们与REST的兼容程度将它们分为四类。这种REST服务划分模型用于识别其成熟度级别 - 称为Richardson成熟度模型

Richardson使用三个因素来决定服务的成熟度,即URIHTTP方法HATEOAS(超媒体)。服务越多采用这些技术 - 应该考虑更成熟。

根据理查森的模型,成熟度水平

根据理查森的模型,成熟度水平

在此分析中,理查森将这些成熟度水平描述如下:

理查森成熟度模型

理查森成熟度模型

零级

成熟度的零级别不使用任何URI,HTTP方法和HATEOAS功能。

这些服务具有单个URI并使用单个HTTP方法(通常为POST)。例如,大多数基于Web服务(WS - *)的服务使用单个URI来标识端点,使用HTTP POST来传输基于SOAP的有效负载,从而有效地忽略其余的HTTP谓词。

类似地,基于XML-RPC的服务以普通旧XML(POX)的形式发送数据。这些是使用单个POST方法构建SOA应用程序并使用XML在服务之间进行通信的最原始方式。

一级

成熟度的第一级使用 URI,HTTP方法和HATEOAS中的URI。

这些服务使用许多URI但只有一个HTTP动词 - 通常是HTTP POST。它们为Universe中的每个资源提供URI。每个资源都由唯一的URI单独标识 - 这使得它们优于零级。

二级

成熟度的第二级使用 URI,HTTP方法和HATEOAS中的URI和HTTP

二级服务托管了许多URI可寻址资源。此类服务支持每个公开资源上的几个HTTP谓词 - 创建,读取,更新和删除(CRUD)服务。这里,通常代表业务实体的资源状态可以通过网络进行操作。

服务设计人员希望人们在掌握API方面付出一些努力 - 通常是阅读提供的文档。

级别2是REST原则的良好用例,它主张基于HTTP请求方法使用不同的动词,并且系统可以具有多个资源。

三级

成熟度的第三级使用所有三个,即URI,HTTP和HATEOAS

这是Richardson模型中最成熟的一个层次,它鼓励容易发现,并且通过使用HATEOAS可以很容易地使回答变得不言自明。

该服务通过一系列资源引导消费者,从而导致应用程序状态转换。

参考文献:

第三幕:成熟启发式