REST、RESTful 与 RESTful API之我见

REST

REST(Representational State Transfer) 并不是一种具体的实现技术,而是一种软件架构风格,主要有以下特点:

  • 从资源的角度来考察整个网络,每个资源有唯一标识
  • 使用通用的连接器接口操作资源
  • 对资源的操作不会改变资源标识
  • 连接协议具有无状态性
  • 能够使用 Cache 机制来增进性能

REST 风格几乎是为 HTTP 协议量身定做的,在 HTTP 协议中用 URI 来标识唯一的资源,用 GET、PUT、POST、DELETE 等动词来操作资源,HTTP 协议是无状态协议,可以通过 Cache 来提高性能。

RESTful

REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。

HTTP 请求在 RESTful Web 服务中的典型应用

一组资源的 URI,比如 http://www.example.com/resources/ 列出 URI 及该资源组中每个资源的详细信息 使用一组给定的资源替换当前整组资源 在本组资源中创建 / 追加一个新资源 删除整组资源
单个资源的 URI,比如 http://www.example.com/resources/1 获取给定资源的详细信息 替换 / 创建指定的资源,并将其追加到相应的资源组 把指定的资源作为资源组,并在其下创建 / 追加一个新元素,使其隶属于当前资源 删除指定元素

RESTful API

RESTful API 是一套互联网应用程序的 API 设计理论。

RESTful API 的返回结果应该符合以下规范

  • GET /collection:返回资源对象的列表(数组)
  • GET /collection/resource:返回单个资源对象
  • POST /collection:返回新生成的资源对象
  • PUT /collection/resource:返回完整的资源对象
  • PATCH /collection/resource:返回完整的资源对象
  • DELETE /collection/resource:返回一个空文档

总结:REST 描述了一个架构样式的互联系统(如 Web 应用程序)。REST 约束条件作为一个整体应用时,将生成一个简单、可扩展、有效、安全、可靠的架构。由于它简便、轻量级以及通过 HTTP 直接传输数据的特性,RESTful 服务成为基于 SOAP 服务的一个最有前途的替代方案。用于 web 服务和动态 Web 应用程序的多层架构可以实现可重用性、简单性、可扩展性和组件可响应性的清晰分离。Ajax 和 RESTful 本质上是互为补充的。开发人员可以轻松使用 Ajax 和 RESTful api一起创建丰富的界面。

2018-01-14

0 个评论