本文档由 g2rain-cms 的
# API 约定
docs/development/api-conventions.md 自动同步生成。# 契约边界
- API 模块提供每个领域对象的
/list与/page查询契约。 TagApi额外提供POST /tag/by_article,按文章 ID 列表返回标签映射;它是查询语义而非写入。- Biz Controller 提供
/save、/{id}删除,以及部分对象的/update_status。 POST /article_tag_relation/batch_add_tags是文章批量绑定标签用例。
# 编码要求
- 查询条件使用 API 模块的
SelectDto;写入使用 Biz 模块 DTO。 - Controller 对请求体使用 Bean Validation,并在 Service 再执行领域和租户校验。
- 普通 App 请求通过 Gateway,不能用内部 URL 或 OpenAPI 隐藏代替鉴权。
- 受信内部查询契约应明确调用方、服务身份、超时、兼容性和字段最小化。
- 大正文与敏感来源字段不应默认进入列表契约;列表、详情和管理视图分别设计。
- 逻辑删除、乐观锁失败、重复关系和非法状态使用稳定错误语义。
当前文章契约的正文返回和详情删除处于未提交变更中,见架构偏差。