开发规范

契约、错误与国际化

保持输入输出、异常、错误码与国际化契约一致。

浏览全部手册
本页目录
文档来源与 Markdown 原文

权威正文:ineed-core/docs/standards/contract-and-error.md。网站按工作区快照同步,原文中的历史日期和验证范围保留。

开始编码前核对同版本源码;跨仓文件引用可在源码定位目录查找。

下载 Markdown 原文 ↓

规则:CORE-CONTRACT-001。适用于 Web 入参/返回、业务共享契约和错误处理。

必须遵守

  • 共享 AO/Query/VO/DTO 放业务 *-corecontract/*;新代码不生成 pojo/*
  • 对象转换使用 converter/XxxConverter。普通 Converter 直接复用父接口方法,有定制映射才覆盖。
  • @Schema(requiredMode = REQUIRED) 不是运行时校验;AO 同步声明适当 Jakarta Validation 注解。
  • Web 返回复用 ResultBuildResponseResults 与统一异常处理,不另造外壳;不能把裸 Flux 塞入普通 JSON data
  • 响应式普通集合接口收敛为 Mono<ResponseResults<Iterable<T>>>;动作按真实语义使用 Mono<Void>,Web 层用 .then(ResultBuild.success()) 构建结果。
  • 框架通用错误复用根级 ErrorCode;业务专有错误先到全局登记表确认范围,再维护模块常量和所有语言资源。

完整接口组合和返回类型见 CRUD/Query 指南。错误机制、约束 key 和 i18n API 的权威正文见 Constant/ErrorCode/I18n,可复制样板见模块样板

错误码来源

应用错误码登记表是应用私有错误码唯一分配源。不要根据旧模块名、数字长度或旧 Core 表自行推导可用号段。已发布错误码的变更还需考虑调用方和 i18n 兼容。

UK/FK 约束使用通用错误与对应约束 i18n key,避免每个数据库约束再造一套私有码。约束 key 定义在模块 Constant 中。

验证

新增字段至少验证非法输入、创建/编辑后的读取、转换与敏感信息隐藏。新增错误至少验证错误语义、资源 key/语言文件与实际响应。数据库错误和业务校验错误可能来自不同入口,不能只测其中一条。

反例:只补 OpenAPI 必填注解;把 Entity 直接作为公共契约;捕获异常后返回成功;复制另一个模块的错误码数字。

仍有疑问?按反馈清单整理复现信息 →