首页 > 设计RESTful API的delete动作的时候如果要一次请求删除多个条目应该如何设计?

设计RESTful API的delete动作的时候如果要一次请求删除多个条目应该如何设计?

如果是需要删除一个条目,可以直接将需要删除的条目的id放进url里面,比如http://example.com/posts/2016,但是如果需要再一次请求里面删除多个条目,应该如何设计比较合理呢?我现在想到的是以下两种方法:

  1. 用逗号分隔放进url里面:http://example.com/posts/2016,2017

  2. 将需要删除的一系列id放进请求体里面,但是似乎没有这样的标准。

想知道大家是如何设计的呢?


http://example.com/posts/begin/2016/count/2

瞎说的


你这个方法是可以的,不过不属于标准的DELETE RESTful请求。当然有一些框架是允许delete伴随body发送的,这样你可以把所有的IDs一次放进去然后发送DELETE请求。 另外一种写法是分成2步完成,第一步发送POST请求,集合所有要删除的IDs然后返回一个header,然后在利用这个header调用DELETE请求。具体步骤如下:

发送POST请求,集中所有的IDs (可以存到Redis或者普通数据库)
http://example.com/posts/deletes

成功后可以返回一个唯一的头文件:

HTTP/1.1 201 created, and a Location header to:
http://example.com/posts/deletes/KJHJS675

然后可以利用Ajax直接发送DELETE请求:
DELETE http://example.com/posts/deletes/KJHJS675

这样就可以在不暴露IDs的情况下更加安全的删除相关条目。

hash或者json

【热门文章】
【热门文章】