REST:如果过程是一个 DB UPDATE 命令,你的 API 调用是否应该严格地被 PUT?

REST: If the procedure is a DB UPDATE command, should your API call strictly be PUT?

考虑以下发票 table,其中包含两个条目,id 1 和 2:

id, item, date_paid
1, 'apple', ''
2, 'banana', ''

付款时date_paid 列需要更新。

什么是正确的 REST 动词?

POST invoices/1/payments 要么 PUT invoices/1/payments

我觉得 POST 是正确的,因为我是 "adding" 付款明细,但在内部我实际上是 "updating" 数据库行,所以 PUT 似乎也适用。

如果我理解您的示例,您的发票 table 是在过去某个时间点创建的。您现在正在更新所述发票以反映已付款。这绝对是更新,PUT 是正确的动词。据推测,您可能还有一个包含实际付款详细信息(金额、付款人等)的付款 table。如果是这样,那么您将在此处添加新的付款记录。该调用将是 POST.