使用REST DELETE的正确方法?

问题描述:

我在尝试删除连接到产品的一些项目。像这样:使用REST DELETE的正确方法?

DELETE /products/Special product/11 

因此,“特殊产品”中的第11项将被删除?这是使用动词DELETE的正确方法吗?我应该url编码Special product对不对?

特殊产品是而不是存储在数据库中。所以我不能使用一些ID。我必须像这样写出来(alpha +数字)。

如果

/products/Special prodcut 

收集资源的所有 “特殊产品”,如果

/products/Special product/11 

是ID为11的 “特殊产品” 的资源,那么你的DELETE使用是RESTful。

据我了解,你的产品

/products 

您选择“特殊产品”(其某种标识符?)

/products/special product/ 

这一产品集合包含多个“项目”?你想删除连接到“特殊产品”与id = 11的项目?如果是这种情况,则uri应该看起来更像

DELETE /products/special product/items/11 

作为示例,您拥有包含图像的相册。要获得所有专辑:

GET /albums 

为了得到一张专辑

GET /albums/{albumId} 

要获得所有图像的一张专辑

GET /albums/{albumId}/images 

删除/从一个删除一个图像/这张专辑

DELETE /albums/{albumId}/images/{imageId}