use*_*603 2 java rest web-services http
我理解(从接受的答案HTTP和REST之间有什么区别?)REST只是一组关于如何使用HTTP的规则
接受的答案说
不,REST是应该使用HTTP的方式.
今天我们只使用一小部分HTTP协议的方法 - 即GET和POST.REST的方法是使用所有协议的方法.
例如,REST规定使用DELETE擦除URI后面的文档(无论是文件,状态等),而使用HTTP,您会滥用GET或POST查询,如... product /?delete_id = 22
我的问题是什么是缺点/缺点(技术或设计)如果我继续使用POST方法而不是DELETE/PUT来删除/更新Rest中的资源?
我的问题是什么是缺点/缺点(技术或设计)如果我继续使用POST方法而不是DELETE/PUT来删除/更新Rest中的资源?
该POST请求是没有Idempotent,但DELETE请求Idempotent.
幂等HTTP方法是一种HTTP方法,可以多次调用而不会产生不同的结果
Idempotency在构建fault-tolerantAPI时很重要.
假设客户想要通过更新资源POST.由于POST不是幂等方法,因此多次调用可能会导致错误更新.如果您向服务器发送POST请求会发生什么,但是会超时.资源是否实际更新?在向服务器发送请求或向客户端发送响应期间是否发生了超时?我们可以再次安全地重试,或者我们是否需要首先弄清楚资源发生了什么?通过使用幂等方法,我们不必回答这个问题,但我们可以安全地重新发送请求,直到我们实际从服务器获得响应.
因此,如果您使用POST进行删除,则会产生后果.
小智 5
从纯粹的技术角度来看,我不知道任何真正的缺点。其他人提到了幂等性,但这不仅仅通过使用 DELETE 来实现,您仍然必须实现它。
这给我们留下了设计方面的考虑:
San*_*adi -1
在 REST 中,我们通常知道POST用于添加某些内容、PUT用于编辑现有数据中的某些内容以及DELETE用于删除某些内容,而 POST 请求是,not Idempotent但 DELETE 请求是Idempotent。虽然上面是定义,但在我看来,我们使用这些方法是因为better understanding该特定方法的用途是什么,并且通过使用这些方法之间的桥梁UI developer不会Backend developer被最小化。
如果你想使用 POST 方法而不是 DELETE/PUT 那么不会有任何影响,但这不是一个好的编码标准。
| 归档时间: |
|
| 查看次数: |
5450 次 |
| 最近记录: |