【发布时间】:2011-01-10 03:31:20
【问题描述】:
假设我有商店,商店中有货架,货架上有产品。因此,为了获取商店货架上的产品列表,我将使用以下请求:
GET http://server/stores/123/shelves/456/products
从这里,我将如何获得单个产品?我应该使用:
GET http://server/products/789
或者:
GET http://server/stores/123/shelves/456/products/789
第一种方法更简洁,因为一旦您获得产品列表,如果您只想查看特定产品的详细信息,您并不真正关心它属于哪个商店。但是,第二种方法更合乎逻辑,因为您正在查看特定商店中特定货架的产品。
同样,PUT/DELETE 操作呢?
DELETE http://server/stores/123/shelves/456/products/789
或者:
DELETE http://server/products/789
为这样的树层次结构设计模式的正确方法是什么?
附:如果我对 REST 架构有一些误解,请提供一些示例来说明如何改进。有太多人喜欢说“REST 不是 CRUD”和“REST 不是 RPC”,然后绝对没有提供良好 RESTful 设计的说明或示例。
【问题讨论】: