假设我有一系列"订单".
(a)订单分为三类:"待定","已确认","已完成".
(b)当然,可以通过ID查询订单
最初我想到了这个URI方案:
为一个):
GET /orders/:id
对于(b):
GET /orders/pending
GET /orders/confirmed
GET /orders/completed
这种方法的问题在于,(非常非常罕见)订单将接收ID"待定"(或"已确认"或"已完成"),在这种情况下,URI /orders/pending
变得不明确.
另一种选择是使用:GET /orders_pending
但这似乎不那么优雅.
有什么建议?
立即想到的解决方案是使用
GET /orders?category=pending HTTP/1.1
Run Code Online (Sandbox Code Playgroud)
这适用于查询,应该很容易在任何服务器上实现.
资源的属性不应该用作url段,因为理想情况下,每个url段代表一个资源(或多个),而不是属性.我想你已经知道了,因为你自己说过
这种方法的问题在于(非常非常罕见)订单将收到ID"待定"(或"已确认"或"已完成")的可能性,在这种情况下,URI/orders/pending变得不明确.
如果要根据属性的值过滤结果,可以使用url中的查询.
另外,正如@mahemoff指出的那样
可以在此基础上构建,例如?category = pending&paid = true,并且您无法真正扩展/订购/挂起的URL样式以涵盖所有可能的查询输入.
归档时间: |
|
查看次数: |
57 次 |
最近记录: |