You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WebAPI校验同时存在400与409类错误时响应码优先级判定问题

结论:优先返回 400 Bad Request

核心依据

  • 符合HTTP状态码原生语义优先级:400 Bad Request 的核心语义是请求本身存在参数/格式错误,服务器无法正常处理该请求;而 409 Conflict 的前置前提是「请求格式、基础参数均符合要求,仅操作和服务器现有资源状态冲突」。连必填参数都缺失的请求本质属于无效请求,语义层级高于业务冲突类错误。
  • 行业通用约定:HTTP错误码返回优先级普遍遵循「请求合法性校验 > 身份权限校验 > 业务逻辑校验」的排序,只要存在高优先级的错误类型,就返回对应高优先级的状态码,同时在响应体的 errors 字段中完整返回所有错误明细,完全符合你预设的「所有校验错误必须在同一响应中返回」的规则。

基于Asp.Net Core + FluentValidation的思想实验实现逻辑

你可以按以下流程设计校验逻辑:

  1. 运行所有校验规则,收集全量错误信息,给每个错误标记分类(输入校验类/唯一性业务校验类)
  2. 先判断错误集合中是否存在输入校验类错误,存在则直接返回400状态码
  3. 若不存在输入校验类错误,再判断是否存在唯一性校验类错误,存在则返回409状态码
  4. 所有响应场景下均在Body中携带完整的errors字段,不遗漏任意错误信息

内容的提问来源于stack exchange,提问作者Tristan Charles Boniface

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:15:00