Mar*_*oll 3 api rest concurrency
我正在启动REST API来创建Web应用程序.
大多数网站都会告诉您删除向DELETEURI 发出HTTP请求的资源/{resource}/{resource-id}.我害怕删除一些自我检索以来可能已更新的资源,甚至是错误的资源.
是否可以要求将资源的时间戳与请求一起发送?我没有在任何地方看到它,但我认为它可能非常有用.它会检查并发性并防止删除随机资源,甚至不用以前检索它们.
小智 6
使用的HTTP标头ETag,并If-Match与你的DELETE要求.
该客户端 GET S中的资源:
GET /things/42
Run Code Online (Sandbox Code Playgroud)
该服务器响应:
200 OK
ETag: "foo-bar-baz"
Run Code Online (Sandbox Code Playgroud)
该客户想要DELETE的资源:
DELETE /things/42
If-Match: "foo-bar-baz"
Run Code Online (Sandbox Code Playgroud)
案例1:事物42没有改变,可以删除.该服务器响应:
410 Gone
Run Code Online (Sandbox Code Playgroud)
案例2:事情42被改变了,与之不符ETag: "foo-bar-baz".它没有删除,服务器响应:
409 Conflict
Run Code Online (Sandbox Code Playgroud)
变体:
您也可以使用标题Last-Modified,If-Unmodified-Since而不是ETag和If-Match.
| 归档时间: |
|
| 查看次数: |
1116 次 |
| 最近记录: |