如果由于数据库完整性而无法从数据库中删除记录,那么应该从HttpDelete操作返回什么Http Status代码?
403 - 禁止
405 - 不允许使用方法
409 - 冲突
...
答案 0 :(得分:1)
从我的角度来看 HTTP代码409 。 RFC没有说明这个具体情况,但也没有拒绝它。
https://tools.ietf.org/html/rfc7231#section-6.5.8
409(冲突)状态代码表示请求不能 由于与目标的当前状态发生冲突而完成 资源。此代码用于用户可能的情况 解决冲突并重新提交请求。服务器应该 生成包含足够用户信息的有效负载 认识到冲突的根源。
来源: REST HTTP status code if DELETE impossible
为什么我认为403和405不合适?