如果是需要删除一个条目,可以直接将需要删除的条目的id放进url里面,比如http://example.com/posts/2016
,但是如果需要再一次请求里面删除多个条目,应该如何设计比较合理呢?我现在想到的是以下两种方法:
用逗号分隔放进url里面:
http://example.com/posts/2016,2017
;将需要删除的一系列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