2015-09-15 16 views
1

考慮有兩個條目,編號1和2如下表發票:REST:如果這個過程是一個DB UPDATE命令,你的API調用是否應該嚴格按照PUT?

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

當付款由date_paid列需要更新。

這是什麼適當的REST動詞?

POST invoices/1/paymentsPUT invoices/1/payments

我覺得POST是正確的,因爲我「並稱」付款細節,但話又說回來內部實際上我「更新」一排DB這樣就把似乎也適用。

回答

2

如果我瞭解您的示例,您在過去某個時間點的Invoice表中創建了一張發票。您現在正在更新所述發票以反映付款。這絕對是一個更新,PUT是正確的動詞。據推測,你可能也有一個支付表與實際支付細節(金額,付款人等)。如果是這樣,那麼這就是您將添加新付款記錄的地方。該電話將是一個POST。

+0

你的理解是正確的。在內部,我沒有付款表來保持簡單。既然你在這種情況下建議PUT是正確的,那麼如果用戶想要編輯付款細節(例如,由於文書錯誤而改變date_paid)呢?我認爲這也是正確的,如果是的話,我用於添加和更新付款的動詞都是PUT。 – IMB

+0

由於兩種情況都在修改現有記錄,因此,在這兩種情況下,PUT都是正確的動詞。 – Necoras

相關問題