我有我的客户可以提交的销售订单,然后在以后进行编辑。将编辑内容插入数据库时,我选择从销售订单中完全删除所有订单项,然后再将它们全部插入,就好像它是新订单一样。
说明:
初始订单..
ORDERID: 1
Lines:
10. item 1 - 45qty
20. item 2 - 50qty
30. item 7 - 33qty
40. item 9 - 65qty
然后客户编辑订单:(更改第1项的数量,删除第9项并添加第4项)
ORDERID: 1
Lines:
10. item 1 - 60qty
20. item 2 - 50qty
30. item 4 - 10qty
40. item 7 - 33qty
我的api将首先调用SQL命令DELETE FROM [table] WHERE ORDERID = @OrderID
然后它将遍历所有编辑中的行并将它们插入到订单中。就像在创建新订单时进行初始插入一样。
所以我的问题是......我应该使用HTTP动词UPDATE来做到这一点吗?还是PUT?或者什么是合适的?
答案 0 :(得分:1)
我认为HTTP PUT
完全符合您的情况。如果要更新现有对象,请使用PATCH
。
HTTP RFC指定PUT必须将全新的资源表示作为请求实体。这意味着,如果仅提供某些属性,则应删除这些属性(即设置为null)。
最近提出了另一种称为PATCH的方法。此调用的语义类似于PUT,它更新资源,但与PUT不同,它应用delta而不是替换整个资源。在撰写本文时,PATCH仍然是提议的标准,等待最终批准。