API Generator - VS Code 扩展
一个智能的VS Code扩展,用于从Swagger文档自动生成TypeScript API客户端代码。
🎯 功能特性
✅ 已实现功能
- 代理服务器配置 - 支持用户输入和验证代理服务器地址
- 目录选择 - 图形化选择API生成输出目录
- API树形展示 - 在WebView中显示所有可用的API分组
- 智能批量生成 - 支持勾选需要生成的API分组
- 进度显示 - 实时显示API生成进度
- 状态栏集成 - 显示当前代理服务器状态
🚀 使用方法
1. 配置 Swagger Resources 地址
有两种配置方式:
方式一:使用配置文件(推荐)
- 在项目根目录创建
swagger.json 文件
- 配置格式:
{
"resourcesUrl": "https://apiproxy.moxitech.cn/v3/api-docs/swagger-config",
"swaggerVersion": "v3"
}
- 支持 v2 和 v3 两种版本
- 配置会随项目切换自动更换
方式二:使用命令配置
- 使用命令:
API Generator: 配置 Swagger Resources 地址
- 输入完整的 Swagger Resources URL
- 系统会自动验证连接并检测版本(v2/v3)
- 配置会自动保存到项目根目录的
swagger.json 文件
2. 打开API选择器
- 使用命令:
API Generator: 打开API选择器
- 或点击左侧资源管理器中的"API Generator"面板
- 选择输出目录(支持快速选择和自定义目录)
2. 选择并生成API
- 在WebView界面中查看所有可用的API分组
- 选择需要生成的API分组
- 点击"生成选中的API"按钮
- 查看生成进度和结果
3. 查看生成结果
- 生成完成后会自动在文件资源管理器中显示
- 生成的文件包含完整的TypeScript类型定义
- 支持立即使用生成的API客户端
📁 生成的文件结构
src/api/generated/
├── system-users/
│ ├── Api.ts # 主要的API客户端类
│ ├── data-contracts/ # 数据类型定义
│ └── http-client.ts # HTTP客户端工具
├── business-orders/
│ ├── Api.ts
│ ├── data-contracts/
│ └── http-client.ts
└── ...其他API分组
🛠️ 开发说明
项目结构
src/
├── commands/ # VS Code命令实现
├── providers/ # 数据提供者(树形视图)
├── utils/ # 工具函数
├── webview/ # WebView界面
├── scripts/ # API生成脚本
└── extension.ts # 扩展入口
核心组件
- ConfigManager - 配置管理器,处理代理服务器和输出目录配置
- ApiTreeProvider - API树形数据提供者,管理API分组数据
- ApiGeneratorWebview - WebView界面控制器,提供图形化操作界面
- API生成逻辑 - 基于swagger-typescript-api的智能生成
🔧 配置选项
swagger.json 配置文件(推荐)
在项目根目录创建 swagger.json:
{
"resourcesUrl": "http://localhost:8080/swagger-resources",
"swaggerVersion": "v2"
}
支持的版本:
v2: Swagger 2.0 格式,返回数组 [{name, url, swaggerVersion, location}]
v3: OpenAPI 3.0 格式,返回对象 {urls: [{name, url}]}
VS Code 设置(可选)
在VS Code设置中可以配置:
apiGenerator.swaggerResourcesUrl - Swagger Resources 完整地址
apiGenerator.outputDirectory - 默认输出目录
apiGenerator.templateFile - 自定义模板文件路径
📝 命令列表
| 命令 |
说明 |
API Generator: 打开API选择器 |
打开图形化API选择界面 |
API Generator: 配置 Swagger Resources 地址 |
配置 Swagger Resources URL |
API Generator: 验证 Swagger Resources 地址 |
测试 Swagger Resources 连接 |
API Generator: 刷新API列表 |
重新加载可用的API分组 |
🚧 开发计划
- [ ] 支持API搜索和过滤
- [ ] 自定义生成模板
- [ ] 批量操作优化
- [ ] 生成历史记录
- [ ] 更多HTTP客户端支持(fetch、axios等)
🔍 故障排除
Swagger Resources 连接失败
- 检查
swagger.json 配置文件是否存在且格式正确
- 确保
resourcesUrl 地址可访问
- 检查 Swagger 服务是否正在运行
- 验证版本配置(v2 或 v3)是否正确
API生成失败
- 确认Swagger文档格式正确
- 检查输出目录权限
- 查看详细的错误日志
WebView显示异常
- 重启VS Code
- 检查扩展是否正确激活
- 查看开发者工具控制台
🤝 贡献指南
欢迎提交Issue和Pull Request来改进这个扩展!
📄 许可证
MIT License
| |