我有一个REST服务建模项和容器。项是单个原子实体,容器是包含项的实体。我如何以RESTful方式模拟这种关系?
例如,这是对项目的请求:
http://server/items/1
=> {"name": "Item 1"}
假设该项目位于容器中:
http://server/containers/1
=> [{"name": "Item 1"}, {"name": "Item 2"}...]
我如何建模将容器添加到容器中?或从容器中删除项目?物品对它们所在的容器一无所知,因此物品的PUT不起作用。容器知道它们包含哪些项目,但是要PUT到容器,需要首先加载整个容器(可能非常大)。
目前,我正在向容器发帖,但'action'查询参数有一个代码味道:
http://server/containers/1?action=add
POST {"name": "Item 1"}
有更好的方法吗?
答案 0 :(得分:1)
POST最常见的用途之一是添加从属资源。因此,只需使用,
http://server/container/1
POST {"name": "Item 1"}
就足够了。要从容器中删除项目,
DELETE http://server/container/1/Item/1