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被声明为幂等方法。

posted @ 2019-08-14 23:59  Ajanuw  阅读(294)  评论(0编辑  收藏  举报