Iro*_*uck 16 rest post http http-post http-status-code-304
我有一个REST API,允许使用HTTP POST修改资源.客户端可能会提交POST请求,导致不修改资源.我正在考虑使用通常用于条件响应的304响应来表明请求没有效果.我没有找到任何这方面的例子,所以我想我会问这里,看看是否有其他人这样做或对此有意见.
经过一番考虑后,我决定坚持使用未更改的资源实体进行正常的200响应.我最初的意图是提供一种简明的方法来向客户表明资源未被修改.当我更多地考虑它时,我意识到为了对304响应做任何有用的事情,他们必须已经有一个缓存版本,在这种情况下,将缓存副本的版本与返回的版本进行比较是微不足道的. 200响应.
我有一个 REST API,允许使用 HTTP POST 修改资源。客户端可能会提交一个 POST 请求,但该请求不会导致资源发生任何修改。
RESTful 方法中的 HTTP POST 意味着创建资源,而不是修改。对于修改,您应该使用 HTTP PUT。
您的问题的解决方案是,当某些内容被修改时,HTTP Status 200 OK ;当没有修改时,HTTP Status 204 No Content 。根据:
常见用例是作为 PUT 请求的结果返回 204,更新资源,而不更改向用户显示的页面的当前内容。如果资源已创建,则返回 201 Created。如果页面需要更改为新更新的页面,则应使用 200 代替。
-- MDN 网络文档
例如:
-- Request
POST /people HTTP/1.1
Content-Type: application/json
{
"name": "John"
}
-- Response
HTTP/1.1 201 Created
Location: /people/1
Run Code Online (Sandbox Code Playgroud)
-- Request
PUT /people/1 HTTP/1.1
Content-Type: application/json
{
"name": "John"
}
-- Response
HTTP/1.1 204 No Content
Run Code Online (Sandbox Code Playgroud)
-- Request
PUT /people/1 HTTP/1.1
Content-Type: application/json
{
"name": "Robert"
}
-- Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "Robert"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8918 次 |
| 最近记录: |