rest - 我应该为业务逻辑失败抛出 400 或 500 服务错误吗?
问题描述
我正在开发一个音乐媒体库,允许用户在他们的库中共享音乐,但前提是他们标记为可共享。
在后端,我正在检查音乐文件是否可以像这样共享
if(file.shareable) share
else throw 500 or 400?
对我来说,这是一个 400 错误请求,因为用户正在尝试做一些业务不允许的事情。
这是正确的方法吗?
解决方案
4xx 表示一个错误的请求——即“不要尝试重新请求”。5xx表示服务器有问题,即“给我们一分钟,稍后再试”。
因此,如果是业务逻辑,那将是 400 级错误,即不要重新请求。
推荐阅读
- c - 我的冲洗功能出现“重新定义不同的基本类型”问题
- python - 在动画期间更新 matplotlib 的颜色条
- shell - 无法解析 GitLab 的主机名
- android - 无论子视图背景的颜色如何,顶部容器的圆角
- docker - Docker 上的 NuGet
- ios - IOS editor bug. archivedData renamed
- php - PHP json_encode - 相同的代码一次传递一个数组,一次传递一个对象
- javascript - 不能重叠兄弟元素
- c - LinkedList 节点的大小
- json - 使用 Codable 将 String 元素转换为复杂类型