3.2 KiB
3.2 KiB
OpenAPI 同步报告
生成时间: 2025-11-10
✅ 已完成的工作
1. OpenAPI 规范验证
- ✅ 使用 Docker 版本的 OpenAPI Generator (v7.17.0)
- ✅ 验证了
backend/docs/openapi.yaml规范文件 - ✅ 规范文件无错误,验证通过
2. 前端客户端代码生成
- ✅ 使用 typescript-axios 生成器
- ✅ 生成位置:
frontend/src/api/generated/ - ✅ 生成内容:
- 7 个 API 接口文件 (artifacts, auth, clusters, health, instances, monitoring, registries)
- 26 个模型文件 (所有请求/响应类型)
- 配置和基础文件 (base.ts, configuration.ts, common.ts等)
3. 依赖安装
- ✅ 安装了生成代码所需的 npm 依赖
4. 类型定义修复
- ✅ 添加了缺失的
ValuesSchemaResponse类型定义 - ✅ 修复了
artifact.api.ts中的类型导出问题 - ✅ 更新了
getValuesSchema函数的返回类型
📊 生成的文件统计
API 接口文件 (7个)
api/artifacts-api.ts- Artifact 相关 APIapi/auth-api.ts- 认证相关 APIapi/clusters-api.ts- 集群管理 APIapi/health-api.ts- 健康检查 APIapi/instances-api.ts- 实例管理 APIapi/monitoring-api.ts- 监控 APIapi/registries-api.ts- Registry 管理 API
模型文件 (26个)
包括所有的请求和响应类型,如:
- ArtifactListItem, ArtifactResponse
- ClusterResponse, CreateClusterRequest, UpdateClusterRequest
- RegistryResponse, CreateRegistryRequest, UpdateRegistryRequest
- InstanceResponse, CreateInstanceRequest, UpdateInstanceRequest
- AuthResponse, LoginRequest, RegisterRequest
- 等等...
⚠️ 已知的非关键问题
以下文件中存在一些类型不匹配的问题,但不影响核心功能:
-
Mock 客户端 (
src/api/client.ts) - 25 个类型错误- 这是用于开发模式的 Mock 客户端
- 需要更新以匹配新的 OpenAPI 类型
-
示例代码 (
src/api/examples.ts) - 4 个类型错误- 示例/测试代码
- 需要更新以匹配新的 API 签名
-
组件中的可选属性处理 - 8 个类型错误
- 一些组件需要添加可选链操作符或空值检查
- 位于: RegistryTreeExplorer, RepositoryItem, TagCard
🔧 建议的后续步骤
短期 (可选)
- 修复 Mock 客户端的类型错误,如果需要使用 Mode 0 (Mock 模式) 进行开发
- 更新示例代码以匹配新的 API 签名
- 添加空值检查到相关组件
长期
- 建立自动化的 OpenAPI 同步流程
# 使用项目 Makefile make openapi-gen-frontend - 在 CI/CD 中添加 OpenAPI 规范验证步骤
📝 使用新生成的 API 客户端
// 导入生成的 API
import { ArtifactsApi, ClustersApi, RegistriesApi } from '@/api/generated/api';
import type { ClusterResponse, CreateClusterRequest } from '@/api/generated/models';
// 创建 API 实例
const clustersApi = new ClustersApi();
// 使用 API
const clusters: ClusterResponse[] = await clustersApi.listClusters();
📚 参考文档
- OpenAPI 规范:
backend/docs/openapi.yaml - 生成的 API 文档:
frontend/src/api/generated/docs/ - 项目 Makefile: 根目录的
Makefile(包含openapi-gen-frontend命令)
生成工具: OpenAPI Generator v7.17.0 生成器: typescript-axios