我想添加或通过API替换优惠券。我认为这两种可能性
patch/api/orders/{id}
{ "couponCode": "test"}
patch/api/orders/{id}/coupon/{poufoncode}
我喜欢第二个,因为应用优惠券代码在应用程序中很重要,并且该URL非常好。
休息后的第一和第二有效可能性吗?第二个选项对PUT和PATCH HTTP方法有效吗?您认为哪个更好?
谢谢
PATCH
方法并非特别依赖。休息是关于转移状态的,而PATCH
并没有真正这样做,而是向更新发送指令。
因此,要使事情休息一下,您想做的是PUT
请求,以创建和替换优惠券的状态。。
随着这种情况,这不是反对使用PATCH
的认可,但我对此的想法是:
- 提供适当的
PUT
请求以完全替换现有状态。 - 将其提供给
PATCH
的支持以优化可能很慢或笨拙的事物。
因此,如果您想在/api/orders/{id}
上使用PATCH
,我首先想知道:PUT
版本看起来像?
我不完全了解/api/orders/{id}/coupon/{couponCode}
上的PATCH
是什么意思。您正在更新优惠券代码吗?这很奇怪,因为代码存在于URI中。DELETE
A PUT
对我来说更有意义。还是HTTP MOVE
方法甚至可能有帮助?(MOVE
也属于"不安息的营地,但对于GET
DELETE
`put)。
如果订单只有1张优惠券,我更喜欢像/api/orders/{id}/coupon
这样的URI结构,因为它是一个不错的单数资源,并且用PUT
替换它是完全有意义的(或PATCH
IT)。