我正在構建一個API以允許API的客戶端發送通知來提醒用戶更新訂單狀態。到目前爲止,有兩個通知:我應該使用哪個資源來保留我的API RESTFul?
- 當用戶沒有標記接收到的訂單;
- 當用戶沒有標記爲完成的順序。
我想要構建這個API來簡化擴展到與訂單相關的其他通知,但爲此API的客戶端保留一個簡單的URI。 如何定義我的資源以保持我的API RESTFul?
我在想,我這些結構中的一個:
選項1:
POST: /api/ordernotification/receive/{id}
POST: /api/ordernotification/complete/{id}
選項2(從資源忽略狀態併發布它來代替):
POST: /api/ordernotification/?id={id}&statusID={statusID}
編輯
方案2.1(保持關節URI,通過@Jazimov的建議):
POST: /api/ordernotification/{statusID}/{id}.
哪種選擇更合適?有一個選項比另一個有什麼優勢?或者有沒有其他的選擇我沒有想到?
您可以使用:/ api/ordernotification/{statusID}/{id}。這是RESTful,因爲你正在使用一個明確的URI,很明顯你正在使用ordernotification函數 - 讓路由從那裏開始。如果您認爲合適,您還可以靈活地添加狀態。 – Jazimov
也許選項3:'PATCH/api/order/{id}'帶'{status:「收到」}「。 ([參考](http://restcookbook.com/HTTP%20Methods/patch/)) – Kenney
@Kenney我認爲PATCH將是有用的,如果我想更新訂單的狀態。在我的例子中,我只想發送一個通知告訴用戶這樣做。資源「訂單」將保持不變。 –