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

发布于 2022-09-02 01:36:26 字数 293 浏览 14 评论 0

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

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

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦在深巷 2022-09-09 01:36:26

你这个方法是可以的,不过不属于标准的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的情况下更加安全的删除相关条目。
深爱不及久伴 2022-09-09 01:36:26

hash或者json

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文