springboot支持处理DELETE!

先上解决方法,正确的接口设计如下:

springboot端

@RequestMapping(value = "xxxx/{id}", method = RequestMethod.DELETE)
通过@PathVariable解析id

client端

DELETE http://ip:port/xxxx/123456

成功!

从RESTFul的设计理念和语义来读这个接口:删除xxxx资源,id是...,合情合理!

所以,不是springboot不支持DELETE,而是我们用错了!

把要删除的资源id直接拼在URL中,HTTP方法用DELETE,不需要提交其他参数。通过@PathVariable解析id即可。


解决过程:

学习springboot的过程中一直在用RESTClient调试接口,在调试DELETE方法的时候报错

org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'DELETE' not supported

接口定义:

DELETE  http://ip:port/xxxx/delete

参数通过body提交

尝试修改成

DELETE http://ip:port/xxxx?id=xxx

仍然报同样的错误

查百度,有人说浏览器不支持PUT、DELETE(我调试PUT是成功的);有人说要加filter通过_mothod曲线解决,这也太不RESTFul了。

困惑的时候,突然看到我的PUT接口PUT http://ip:port/xxxx/{id},body提交修改的具体参数和值。再回想下REST API设计标准,答案豁然开朗。

REST API设计标准参考《REST API Design Rulebook》O'REILLY。




  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值