首先,之所以晦涩是因为前面主语被去掉了,全称是 Resource Representational State Transfer,通俗来讲就是:
资源在网络中以某种表现形式进行状态转移
分解开来:
Resource:资源,即数据(前面说过网络的核心)。比如 newsfeed,friends等;
Representational:某种表现形式,比如用JSON,XML,JPEG等;
State Transfer:状态变化。通过HTTP动词实现。
所以,REST就是:服务器生成包含状态转移的表征数据,用来响应客户端对于一个资源的请求;客户端借助这份表征数据,记录了当前的应用状态以及对应可转移状态的方式。当然,为了要实现这一系列的功能,一个不可或缺的东西就是超文本(hypertext)或者说超媒体类型(hypermedia type)。这绝对不是一个简简单单的媒体类型(例如,JSON属性列表)可以做到的。(参考:REST APIs must be hypertext-driven)
最通俗易懂的解释
真的一看就懂了:
RESTful Best Practices很好的一篇文章,先marked。
REST -- REpresentational State Transfer
首先,之所以晦涩是因为前面主语被去掉了,全称是 Resource Representational State Transfer,通俗来讲就是:
分解开来:
所以,REST就是:服务器生成包含状态转移的表征数据,用来响应客户端对于一个资源的请求;客户端借助这份表征数据,记录了当前的应用状态以及对应可转移状态的方式。当然,为了要实现这一系列的功能,一个不可或缺的东西就是超文本(hypertext)或者说超媒体类型(hypermedia type)。这绝对不是一个简简单单的媒体类型(例如,JSON属性列表)可以做到的。(参考:REST APIs must be hypertext-driven)
因此,像下面这种API
1、获取文章 请求:
GET /blog/post/{postId} HTTP/1.1
响应:2、发布文章 请求:
响应:
HTTP/1.1 201 CREATED
绝对不是RESTful! 绝对不是RESTful! 绝对不是RESTful! (重要的事情要说三遍)