CodeBuddy支持从TypeScript接口反向生成OpenAPI Schema片段并注入完整openapi.yaml:1.在TS文件中右键interface选择“生成OpenAPI Schema”得YAML片段;2.用CLI命令或AI指令将其注入components.schemas并关联路径;3.通过Swagger Editor和swagger-cli验证可用性。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜
你需要在没有现成接口文档的情况下,仅凭已有 TypeScript 类型定义快速产出可交付的 OpenAPI 3.0 契约,用于联调、Mock 或 Swagger UI 集成,但手动翻译 interface 到 YAML 容易漏字段、错嵌套、缺 example。
从 TS 接口反向生成 OpenAPI Schema 片段
这一步适用于前端已定义好响应模型、后端尚未提供文档的并行开发阶段,CodeBuddy 能把 type/interface 直接编译为标准 OpenAPI schema。
1、在 CodeBuddy 中打开包含目标接口类型的 TS 文件,例如 src/types/user.ts,滚动定位到 【UserDetailResponse】 interface 声明处。
2、将光标停在 interface 关键字上 → 右键 → 选择“生成 OpenAPI Schema”。
3、CodeBuddy 输出纯 YAML 片段,含 type、properties、required 和 example 字段,自动推导嵌套对象与数组结构;若字段带 JSDoc 注释(如 /** @example "admin@corp.com" */ email: string;),example 值会优先取注释中内容。
把 Schema 片段整合进完整 openapi.yaml
单个 interface 生成的是 schema 片段,不是完整文档。必须将其注入 components.schemas 并关联到路径定义,才能被 Swagger UI 识别。
方法一:CLI 手动注入
执行命令:codebuddy doc inject --schema user.yaml --target openapi.yaml --as UserDetailResponse。
php获得文件的mime type类
php获得文件的mime type类
下载
该命令会查找 openapi.yaml 中的 components.schemas 节点,将 user.yaml 内容以 key UserDetailResponse 插入;【若 openapi.yaml 不存在,此命令会静默失败,不创建新文件】。
方法二:AI 指令补全路径
在 CLI 交互模式下输入:“把以下 schema 作为 UserDetailResponse 加入 components.schemas,并为 GET /api/v1/users/{id} 添加 200 响应,content type 为 application/json,schema 引用 #/components/schemas/UserDetailResponse” → 粘贴上一步生成的 YAML 片段 → 等待输出完整 openapi.yaml。
验证生成结果是否可用
打开 Swagger Editor(editor.swagger.io),将生成的 openapi.yaml 全文粘贴进去。
检查三项:路径是否出现在左侧导航栏、响应体是否正确展开为树形结构、每个字段的 type 和 example 是否与 TS 原始定义一致。
如果某个嵌套字段显示为 object 且无法展开,说明其类型是未导出的内联 interface —— 需回到 TS 文件中,把该类型单独声明并 export。
执行 swagger-cli validate openapi.yaml,无报错即表示语法合规。
