#### 统一接口
RESTful应该有统一接口。HTTP 1.1 提供了一系列方法,被称为动作。在这其中比较重要的动作是:
![](https://box.kancloud.cn/860fe9f154fa58301a9cbdf5fa000c44_664x249.png)
安全的操作是指对原始资源值不会产生影响的操作。列如,数学上的操作除以1就是安全的操作,因为无论多少次用1除一个数,原始数值都不会改变。幂等操作是指无论多少次执行都给出相同结果的操作。例如,数学上的乘以0就是幂等的,因为无论计算多少次结果都是零,结果都是一样的。类似的,一个安全的HTTP方法不会使服务器上的资源发生变化。一个幂等的HTTP方法无论执行多少次都会有相同的响应。把方法分类成安全和幂等的可以使客户端在不稳定的Web环境中再次触发相同的请求的结果变得更可预测。
在 Web 上 GET 可能是最流行的方法。它用来获取资源。
HEAD 仅返回响应头和空的响应体。这个方法可以用在你不需要全部的资源模型表示(representation)的时候。例如,HEAD 可以快速检测服务器上的资源是否存在。
OPTIONS 用于获取资源允许的操作。
例如,思考下面的请求:
~~~
OPTIONS http://MyService/Persons/1 HTTP/1.1
HOST: MyService
~~~
在服务验证之后请求返回下面内容:
~~~
200 OK
Allow: HEAD, GET, PUT
~~~
第二行包含客户端可以使用的方法。
你应该仅仅出于它们的实际意义使用这些方法。例如:绝不要使用 GET 在服务器上创建或删除资源。如果你没这样做,将会扰乱你的客户端导致他们做出意外的操作。举例说明,我们考虑下面的请求:
~~~
GET http://MyService/DeletePersons/1 HTTP/1.1
HOST: MyService
~~~
根据 HTTP 1.1 规范,GET 请求的目的是从服务器获取资源。但是它很容易实现一个删除 Person 的请求。这个请求也许运行的很棒,但是这不是RESTful 设计。换言之,使用 DELETE 方法来删除资源像下面这样:
~~~
DELETE http://MyService/Persons/1 HTTP/1.1
HOST: MyService
~~~
REST 建议统一接口,HTTP 提供了统一接口。然而,这由服务架构师和开发人员保持它的统一。
- 《Restful Web Service Cookbook》
- 简介
- 推荐序
- 第 1 章 使用统一接口
- 1.1 如何保持交互的可见性
- 1.2 何时使用 GET 方法
- 1.3 何时使用 POST 方法
- 1.4 如何使用 POST 方法创建资源
- 目录
- PHP RESTful
- 理解RESTful架构
- 深入浅出REST
- 表述性状态转移
- 无状态
- 设计指南
- RESTful API 设计指南
- RESTful API 设计最佳实践
- 测试工具
- soapUI
- 实例
- 豆瓣
- 应用
- 接口规范
- 视频
- 《Restful API实战》
- 课程目标
- 第1章 Restful是什么
- 1-1 restful简介及资源介绍
- 第2章 为什么要使用Restful
- 2-1 Restful中HTTP协议介绍
- 2-2 架构区别
- 第3章 如何使用Restful
- 3-1 restful设计要素
- 3-2 DHC Client
- 3-3 本地开发环境搭建
- 3-4 确认设计要素
- 3-5 数据库设计
- 3-6 用户业务逻辑
- 3-7 文章业务逻辑
- 3-8 restfulApi设计要素
- 3-9 初始化运行参数
- 3-10 完善用户API
- 3-11 完善文章API
- 文摘
- RESTful 接口实现简明指南
- RESTful Web 服务教程
- 模型表示(Representations)
- 资源定位
- URI中的查询参数
- 统一接口
- PUT 和 POST 的区别
- 基于 REST 的 Web 服务
- PHP Reatful
- Restful状态响应码
- 《REST API 安全设计指南》