客户端插入数据违反外键约束时应使用哪种HTTP错误状态码?
问题解答
状态码选择:返回Bad Request(HTTP 400)
- 外键约束违反属于客户端输入错误:客户端携带的user_id不存在于关联的用户表中,不符合数据插入的前置规则,并非服务器内部逻辑故障、数据库连接异常等服务端问题,因此应返回代表客户端请求错误的400状态码,而非代表服务端内部错误的500。
错误信息处理:需替换原始SQL错误信息
- 禁止直接返回原始SQL错误内容(
ERROR: insert or update on table "books" violates foreign key constraint "books_user_id_fkey" (SQLSTATE 23503)),这类信息包含数据库内部结构细节,对客户端无意义且可能泄露系统架构信息。 - 应返回用户友好的中文提示,例如:
"错误:传入的用户ID无效,无法完成图书添加"。
内容的提问来源于stack exchange,提问作者Muhammad Fadhil Akbar
相关产品推荐
相关产品推荐

