假设我有两个resoureces:推车和物品。物品可以嵌套在购物车内,也可以不是这样:
/carts/32658/items/screwdriver
/items/screwdriver
购物车中而不是购物车中的相同商品是否与REST约定中的资源不同?
答案 0 :(得分:1)
如果你在谈论同一把螺丝刀,那么它们是相同的资源。一个资源可能有几个URL。在这种情况下,其中一个被选为官方URL,称为Canonical URL
。官方螺丝刀URL可能是/items/screwdriver
,客户可能会获得有关它的完整信息。
答案 1 :(得分:1)
正如其他答案和评论所暗示的,当一个资源有多个URI并且different sources和SO answers这样说时,没有REST违规。
服务套件中的每个资源都有至少一个标识它的URI。
但是如果您允许第二个资源链接上的所有HTTP方法,我会重新考虑。给定/carts/32658/items/screwdriver
允许PUT
可能不太好,因为客户可能认为他们只会更换购物车#32658中的螺丝刀而不是全局的螺丝刀实体。