簡體   English   中英

PATCH API REST最佳命名選項

[英]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 ,但是我的想法是,這樣做是個好主意:

  1. 提供適當的PUT請求以完全替換現有狀態。
  2. 有了這些,就可以添加對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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM