agilelabs-fx-docs main framework-standards/checks/api-contract.md

WebAPI 与前端契约检查

本页用于检查项目的 API 返回包、字段命名、错误处理和接口文档是否与前端契约保持一致。

检查目标

  • 判断前端是否只需要面对一套稳定接口协议。
  • 判断 API 实际行为、接口文档和规范页是否一致。
  • 判断旧接口兼容是否被控制在明确范围内。

必查项

  • API 是否默认返回 { data, code, msg, errMsg, tid }
  • 前端消费字段是否统一为 camelCase
  • 成功返回、业务错误、系统错误是否都能稳定映射到标准包。
  • 到达应用程序层的统一 JSON API 是否稳定返回 HTTP 200,并把成功、鉴权失败、业务错误和系统错误都落到 code
  • /api/* 下的 JSON WebAPI action 是否全部使用具体 DTO、集合 DTO 或 Task 作为返回签名。
  • /api/* 下的 JSON WebAPI action 是否仍残留 IActionResultActionResult<T>
  • 空成功接口是否使用 Task,并与项目约定的 envelope 表现一致。
  • Swagger 或其他接口文档是否体现真实返回结构,尤其是 envelope 的 data 是否指向真实 DTO。
  • 旧接口若仍使用其他字段风格,是否在适配层和文档中显式标注。

判定标准

  • 新接口全部遵循标准包和 camelCase,判定为合规。
  • /api/* 下的 JSON WebAPI action 全部使用具体 DTO、集合 DTO 或 Task,且 Swagger 的 data 能映射到真实模型,判定为合规。
  • 若局部接口仍返回裸对象或 PascalCase 字段,判定为偏差。
  • 只要 /api/* 下的 JSON WebAPI action 继续使用 IActionResultActionResult<T>,判定为偏差。
  • 若错误返回不带 codetid,判定为前端契约不完整。
  • 若统一 JSON API 的 HTTP 传输状态、envelope 结构或文档描述不一致,判定为不合规。

常见不合规信号

  • 接口 A 返回封包,接口 B 返回裸对象。
  • Swagger 显示 EnvelopMessage<T>,实际接口返回另一套字段。
  • action 返回 IActionResultActionResult<T>,Swagger 的 data 退化成无类型 object
  • 为了描述空成功而返回 string.Empty、匿名对象或其他占位值。
  • 统一 JSON API 实际总是返回 200,Swagger 却仍暴露 2012024xx/5xx 作为对外契约。
  • 前端页面里到处写兼容判断,例如既读 errMsg 又读 message
  • 同一系统中混用 camelCasePascalCasesnake_case 的 JSON 字段。

规则依据

示例项目对照