HTTP 方法
HTTP GET
使用GET请求仅检索资源表示/信息 - 而不是以任何方式修改它。
找到返回200,没找到返回404,GET请求本身未正确形成返回400(客服端请求语义错误)
HTTP GET http://www.appdomain.com/users
HTTP GET http://www.appdomain.com/users?size=20&page=5
HTTP GET http://www.appdomain.com/users/123
HTTP GET http://www.appdomain.com/users/123/address
HTTP POST
POST方法用于在资源集合中创建新资源
创建成功,并引用新资源和Location头返回201,创建成功但没有产生URI标识的资源返回200或204
HTTP POST http://www.appdomain.com/users // 创建一个
HTTP POST http://www.appdomain.com/users/bulk // 创建多个
HTTP POST http://www.appdomain.com/users/123/accounts
HTTP PUT
主要使用PUT API 来更新现有资源(如果资源不存在,则API可能决定是否创建新资源)。如果创建新资源则返回201,修改则应该发送200或者204。
HTTP PUT http://www.appdomain.com/users/123
HTTP PUT http://www.appdomain.com/users/123/accounts/456
HTTP DELETE
用于删除资源
删除成功返回200,操作已经在排队返回202,删除的资源已被删除(未找到)返回404,但使得DELETE方法不是幂等的,所以未找到你也可以返回200
HTTP DELETE http://www.appdomain.com/users/123
HTTP DELETE http://www.appdomain.com/users/123/accounts/456
HTTP PATCH
HTTP PATCH请求将对资源进行部分更新。如果您看到PUT请求也修改了资源实体以便更清楚 - PATCH方法是部分更新现有资源的正确选择,只有在您完全替换资源时才应使用PUT。
PATCH请求不像PUT请求那样简单:
// 获取一个资源
HTTP GET /users/1
// result
{id: 1, username: 'admin', email: 'email@example.org'}
// 更新邮箱示例
HTTP PATCH /users/1
[
{ “op”: “replace”, “path”: “/email”, “value”: “new.email@example.org” }
]
// 根据HTTP规范,可能存在以下可能的操作
[
{ "op": "test", "path": "/a/b/c", "value": "foo" },
{ "op": "remove", "path": "/a/b/c" },
{ "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] },
{ "op": "replace", "path": "/a/b/c", "value": 42 },
{ "op": "move", "from": "/a/b/c", "path": "/a/b/d" },
{ "op": "copy", "from": "/a/b/d", "path": "/a/b/e" }
]
安全方法
GET和HEAD方法应仅用于检索资源表示 - 并且它们不会更新/删除服务器上的资源。据说这两种方法都被认为是“ 安全的 ”。
幂等方法
术语“幂等”更全面地用于描述如果执行一次或多次将产生相同结果的操作。GET,HEAD,PUT和DELETE被声明为幂等方法。