REST与相关服务架构解析
1. HTTP+POX概述
REST在企业级面向服务架构应用的推广中面临诸多挑战。首先,严格的四个HTTP动词(GET、POST、PUT、DELETE)使用规则以及资源需传输到客户端进行逐块处理的要求,给其应用带来了困难。其次,浏览器对这四个动词的支持有限,进一步限制了纯粹REST的应用。此外,资源URL缺乏既定的规范,以及内容类型的指定方式不统一(如ActiveRecord不符合相关规范),也使得REST的应用不太受欢迎。
不过,在Rails领域之外,一种基于严格REST的变体——REST+POX正逐渐受到关注。其中,POX代表普通的旧XML(Plain Old XML)。在HTTP+POX中,当基于资源的方法适用时,会采用REST的约定,例如ActiveResource所能实现的功能都属于这一范畴。而对于需要面向过程方法的问题,比如确保服务器能在数据库事务中封装一个过程,或者在不将所有数据先传输到客户端处理的情况下完成任务,就会采用POX的方式。
POX本质上是一种通过URL访问的方法,它接收参数并以XML格式返回结果。它类似于Web表单中action参数所定义的页面,但传入的参数可以是用XML编码的完整数据结构。简单来说,它就是我们多年来一直在开发的服务器端操作,只是增加了复杂数据作为参数。HTTP+POX中的“普通旧XML”部分,是将XML - RPC中隐藏在端点URI后面的过程操作,下移到了更低级的HTTP层。通常,人们所说的RESTful指的就是这种方式。
2. 定义服务契约
尽管REST的概念早在多年前就由Fielding提出,但作为构建Web服务的实用方法,它仍处于起步阶段。对于如何最好地实现
超级会员免费看
订阅专栏 解锁全文
168万+

被折叠的 条评论
为什么被折叠?



