我正在尝试设计一个“项目集合”资源。我需要支持以下操作:
就我而言,这是:
创建集合:
==>
POST /service
Host: www.myserver.com
Content-Type: application/xml
<collection name="items">
<item href="item1"/>
<item href="item2"/>
<item href="item3"/>
</collection>
<==
201 Created
Location: http://myserver.com/service/items
Content-Type: application/xml
...
移除集合:
==>
DELETE /service/items
<==
200 OK
从集合中删除单个项目:
==>
DELETE /service/items/item1
<==
200 OK
但是,我发现支持其他操作有点棘手,即我可以使用哪些方法:
最佳答案
您最好为集合项使用非位置标识符,例如 UUID,以避免在删除项目之前的项目时更改项目的 url 等问题。 (当然,您仍然可以使用 itemN
或仅使用 N
,只要该数字始终与同一项目相连,在删除后留下空白,但 UUID 不那么令人困惑。)
该集合的网址为 /service/items/
.每个项目都有网址 /service/items/<id>
.
如果您确实需要批量删除功能,请通过不同的、明确标记的 API 提供,例如 PURGE/service/items。
关于rest - 如何设计一个RESTful集合资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2810652/