Skip to content

10 RESTful服务(下):如何评价服务是否RESTful?

你好,我是周志明。

上一节课,我们一起学习了REST的思想、概念和指导原则等,今天我们把重心放在REST的实践上,把目光聚焦到具体如何设计REST服务接口上。这样我们也就能回答上节课提出的问题“如何评价服务是否RESTful”了。

Richardson成熟度模型

RESTful Web APIs”和“RESTful Web Services”的作者伦纳德 · 理查德森(Leonard Richardson),曾提出过一个衡量“服务有多么REST”的Richardson成熟度模型(Richardson Maturity Model,RMM)。这个模型的一个用处是,方便那些原本不使用REST的服务,能够逐步导入REST。

Richardson将服务接口按照“REST的程度”,从低到高分为0至3共4级:

  1. The Swamp of Plain Old XML:完全不REST。另外,关于POX这个说法,SOAP表示感觉有被冒犯到
  2. Resources:开始引入资源的概念。
  3. HTTP Verbs:引入统一接口,映射到HTTP协议的方法上。
  4. Hypermedia Controls:在咱们课程里面的说法是“超文本驱动”,在Fielding论文里的说法是Hypertext as the Engine of Application State(HATEOAS),都说的是同一件事情。