SuperAPI AI 工具集

api-breaking-change-detector

编程与开发

查看项目

更新于 10-16 08:09

技能介绍

用途:在发布前交叉比对 C# Web API 的实际契约(控制器、DTO、路由定义)与 TypeScript/JavaScript 消费端,双向发现契约漂移。适用于检查 DTO/控制器改动是否会破坏前端或客户端、验证前后端契约是否同步、发布前审计单个端点或整个 API 面。不适用于从 OpenAPI 规范生成新 API 代码、用 OpenAPI 文档搭建新端点,或直接比较两个 OpenAPI 规范文件(本技能读取源码而非导出规范)。

主要能力:先发现全局 JSON 与命名策略(检查 Program.cs 或 Startup.cs 中的 JsonNamingPolicy.CamelCase、PropertyNamingPolicy 或 Newtonsoft 的 CamelCasePropertyNamesContractResolver),默认按 camelCase 映射,除非属性上有 [JsonPropertyName];忽略 [JsonIgnore] 属性。识别 C# 契约面:路由(基础 [Route] 加动作 [HttpGet]/[HttpPost],归一化路由参数如 {id:int} 转为 {id})、请求 DTO(属性名、类型、必填规则:带 [Required]、[BindRequired]、C# 11 required 修饰符或非空值类型且无默认值即为必填;可空或有默认初始化即为可选)、响应 DTO(属性名、类型、可空性)、显式状态码([ProducesResponseType] 与 StatusCode(...))。查找匹配的 TS/JS 消费端:自动生成客户端(NSwag/OpenAPI Generator 输出,高置信度)、手写服务/客户端(搜索 fetch、axios、Angular HttpClient、ky 等调用并归一化 URL 模板,中置信度)、未找到则报告“未定位到客户端消费端”而非猜测。比较后端到客户端(属性重命名/删除、新增必填请求字段、客户端未处理的响应状态码、响应字段类型变化)与客户端到后端(无害死字段、静默破坏的高危 bug)。

输出格式:审计范围、后端到客户端破坏(按端点分组,含匹配方法与严重程度)、客户端到后端漂移、未找到消费端、匹配置信度汇总。

限制:仅报告不修改代码;不基于类名猜测配对;未找到匹配时明确报告静态搜索未定位到消费端。