Richardson成熟度模型:关于REST的不同风格

REST(representational State Transfer)表述性状态转移

看起来这个名词有点难以理解,个人理解成代表性的,具体的状态(可以是动词)引起的状态转移?

等级0

普通的请求/响应模式,使用xml,json或其他格式发送请求,接收响应

等级1

引入资源(Resource)的概念,服务器返回相应资源,客户端对指定资源(体现在url中)附加相应参数进行操作,与等级0相比,等级0更像是传递参数,而等级1则是调用指定对象的某个方法并传递参数

等级2 HTTP动词

会尽可能根据HTTP协议定义的那样来合理使用HTTP动词,并配合响应码来帮助交流

等级3 超媒体控制

响应信息中包括一系列uri,指出后续的操作

Levels的意义

  • Level 1 解释了如何通过分治法(Divide and Conquer)来处理复杂问题,将一个大型的服务端点(Service Endpoint)分解成多个资源。
  • Level 2 引入了一套标准的动词,用来以相同的方式应对类似的场景,移除不要的变化。
  • Level 3 引入了可发现行(Discoverability),它可以使协议拥有自我描述(Self-documenting)的能力。

这一模型帮助我们思考我们想要提供的HTTP服务是何种类型的,同时也勾勒出人们和它进行交互时的期望。

参考链接:

Richardson Maturity Model - steps toward the glory of REST(原文)

Richardson成熟度模型(Richardson Maturity Model) - 通往真正REST的步骤(译文)

原文地址:https://www.cnblogs.com/qilong853/p/6601708.html