REST API开发疑问:使用HTTP DELETE动词删除单个对象是否合理?
当然合适!这才是删除单个资源的标准REST做法
你完全没理解错——用DELETE动词针对带ID的单个资源URL来删除数据库单条记录,是REST API设计的标准操作。
你看到的教程里那段话,其实是特指删除整个资源集合的场景:比如如果有人给/api/users(不带任何ID的集合URL)发DELETE请求,返回405(Method Not Allowed)是合理的——毕竟很少有业务场景会允许一键删除整个用户集合,这是个保护机制。
但针对单个资源的URL(比如/api/users/123),DELETE就是最恰当的HTTP动词:
- REST的核心是「资源定位」,这个URL明确指向了ID为123的用户资源,
DELETE请求就是在告诉服务器“请删除这个特定的资源”。 - 服务器处理成功后,通常返回204(No Content,成功删除且无返回数据)或者200(OK,附带删除后的资源详情或确认信息)都是符合规范的。
总结一下:
DELETE /api/[resource]/[id]:删除单个资源,标准且合理DELETE /api/[resource]:删除整个集合,通常要禁止,返回405是正确的防护
放心用就好,这是业界通用的REST API设计实践。
内容的提问来源于stack exchange,提问作者AndreaNobili
相关产品推荐
相关产品推荐

