REST和嵌套资源

时间:2014-09-26 07:29:14

标签: rest

假设我有两个resoureces:推车和物品。物品可以嵌套在购物车内,也可以不是这样:

/carts/32658/items/screwdriver

/items/screwdriver

购物车中而不是购物车中的相同商品是否与REST约定中的资源不同?

2 个答案:

答案 0 :(得分:1)

如果你在谈论同一把螺丝刀,那么它们是相同的资源。一个资源可能有几个URL。在这种情况下,其中一个被选为官方URL,称为Canonical URL。官方螺丝刀URL可能是/items/screwdriver,客户可能会获得有关它的完整信息。

答案 1 :(得分:1)

正如其他答案和评论所暗示的,当一个资源有多个URI并且different sourcesSO answers这样说时,没有REST违规。

  

服务套件中的每个资源都有至少一个标识它的URI。

但是如果您允许第二个资源链接上的所有HTTP方法,我会重新考虑。给定/carts/32658/items/screwdriver允许PUT可能不太好,因为客户可能认为他们只会更换购物车#32658中的螺丝刀而不是全局的螺丝刀实体。