REST=Representational State Transfer
Web是由资源组成的,资源是任何有意义的项目。“表示”是资源的返回值,“表示”把客户端置于某种“状态”之中。客户端沿着超链接访问另外的资源,新的表示把客户端置于另外一个状态之中。 从而,客户端在每个资源表示时转换状态。
REST是一种体系结构风格,而不是标准。
逻辑URL vs. 物理URL
资源是概念上的实体。表示是资源的具体表现。如下URL:
http://www.parts-depot.com/parts/00345
是逻辑URL而不是物理URL。
REST Web Services的特点
- 客户端-服务器:拉风格的交互模式:消费方组件把表示拉出来
- 无状态:每个从客户端到服务器的请求必须包含足够的信息使得服务器理解该请求,不需要服务器上存储的上下文信息
- 缓存:为了提高网络效率,响应应该可以被标示成可缓存的或是不可缓存的
- 统一的接口:所有资源通过通用的接口访问(HTTP GET, POST, PUT, DELETE)
- 命名资源:系统由通过URL命名的资源组成
- 互连的资源表示:资源的表示通过URL互相联系起来,从而客户端可以从一个状态转换到另一个
- 层次化的组件:中间件,比如代理服务器,缓存服务器,网关等,可以插入到客户端和资源中间来完成安全和安全等功能
REST Web Services设计原则
- 构建REST Web Services的关键是识别出所有需要暴露成服务的概念层实体。
- 为每个资源创建URL。
- 对资源进行分类,区分出哪些客户端只能获取表示,哪些是可以修改的。前者使用HTTP GET来访问,后者使用HTTP POST, PUT和DELETE来访问。
- 所有通过HTTP GET访问的资源必须是没有副作用的。
- 没有表示是作为孤岛存在的。在资源表示中放入超链接。
- 逐步的暴露数据。不要在单一的文档中暴露所有数据。提供超链接来获取更多的信息。
- 使用schema来指定响应的格式。
- 说明该服务是使用WSDL文档来调用,而是简单的HTML文档。
|