[英]PATCH API REST best naming option
我想通過api向訂單添加或替換優惠券。 我以為這兩種可能性
修補程序/ api / orders / {id}
{ "couponCode": "test"}
補丁/ api / orders / {id} / coupon / {couponCode}
我喜歡第二個,因為在應用程序中應用優惠券代碼很重要,並且此url很好地指定了它。
REST之后是否存在第一和第二有效的可能性? 第二個選項對PUT和PATCH HTTP方法有效嗎? 你認為哪個好些?
謝謝
PATCH
方法本身並不是特別RESTful的。 REST是關於轉移狀態的,而PATCH
並沒有真正做到這一點,而是發送一條更新指令。
因此,為了使事情REST風格的你會想要做的是一個PUT
請求創建和替換全部優惠券的狀態。
鑒於此,這並不是反對使用PATCH
,但是我的想法是,這樣做是個好主意:
PUT
請求以完全替換現有狀態。 PATCH
支持,以優化可能緩慢或笨拙的事物。 因此,如果您想在/api/orders/{id}
上使用PATCH
,我首先想知道: PUT
版本是什么樣的?
我不完全了解/api/orders/{id}/coupon/{couponCode}
上的PATCH
是什么意思。 您要更新優惠券代碼嗎? 這很奇怪,因為該代碼存在於uri中。 DELETE
+ PUT
對我來說更有意義。 也許HTTP MOVE
方法甚至可能會有所幫助? ( MOVE
也屬於“非RESTful陣營,但這對於GET
+ DELETE
+`PUT是一個不錯的優化)。
如果一個訂單只有1張優惠券,我會更喜歡uri結構,例如/api/orders/{id}/coupon
因為它是一種很好的單一資源,將它替換為PUT
(或PATCH
)是很有意義的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.