REST是REpresentational State Transfer 的缩写,那它究竟意味着什么呢?也许这个问题已经困惑你很久了,下面就由包子给你细细分解。
从宏观上讲,REST 是一种设计网络应用时的构架风格。这种风格约束了网络应用中各个模块之间的交互,从而使网络应用具有非常好的简易性,扩展性,可靠性等。 具体来说,REST描述了以抽象的“资源”为中心,各个模块之间通过转移(Transfer)沟通资源的“表征状态 (Representational State)”来实现应用的功能。
在REST里,“资源”是一切可命名事物的抽象。可以是一个人,可以是一个图片,也可以是北京的天气。有些资源是静态不变的,也有些是一直变化的,所以在模块获取资源的时候,我们REST构架下传递的是这个资源的某个“表征状态”。比如对于“北京时间”这个资源,传递这个资源的时候,我们可以把当下时间点这个状态通过某种方式出来后传递。
REST 赋予所有需要被外界使用的资源一个唯一的ID,不同的模块可以通过这个资源ID来获取资源(的表征状态)。 在这里我们可能已经注意到了,和某些分布式构架不同的是,REST暴露的是“接口资源”,而不是“接口操作”。虽然操作本身也可以作为资源被不同模块获取,但是这表明了一种不同的抽象方式。