【发布时间】:2020-01-09 00:02:15
【问题描述】:
我们有一个库存功能,我们可以在其中生成账单。有一个 Edit Bill API 调用。我们很困惑将其实现为 PATCH 或 PUT。
假设我们的 BillLineItem 包含
{
stockId
quantity
rate
}
id = 1 的账单有 2 个 LineItem:
| Stock Id | Qty | Rate |
| 10 | 2 | 10 |
| 11 | 3 | 20 |
现在假设我想更改 quantity for stock Id : 10 to 5 和
我要改rate for stock Id : 11 to 40
我是否应该将其表示为 PUT 调用如下:
bill : {
id : 1
lineItems : [
{
stockId : 10,
qty : 5,
rate : 10
},
{
stockId : 11,
qty : 3,
rate : 40
}
]
}
我是否应该将其表示为 PATCH 调用如下:
bill : {
id : 1
lineItems : [
{
stockId : 10,
qty : 5,
},
{
stockId : 11,
rate : 40
}
]
}
还有其他参数,如 discountType、discountValue 作为 BillLineItem 的一部分,我在上面的示例中没有显示。
【问题讨论】:
-
就编码而言,使用 PATCH、PUT 或 POST 没有区别。他们都只是将数据发送到服务器,它可以用它做任何事情。
-
如果您正在实现 REST API,PATCH 最适合您修改对象而不是完全替换它们。见en.wikipedia.org/wiki/…