REST服务中的实体关联

时间:2010-07-09 07:05:27

标签: rest

我有一个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"}

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

POST最常见的用途之一是添加从属资源。因此,只需使用,

http://server/container/1
POST {"name": "Item 1"}

就足够了。要从容器中删除项目,

DELETE http://server/container/1/Item/1