fx-spec-hub
v0.0.34
Published
API 规范中心/控制台
Readme
swagger-admin
把本仓库作为一个可复用的依赖包使用:提供 OpenAPI -> TS Client 生成,以及 Strapi 枚举生成。
安装(示例)
在你的其它项目里(推荐开发依赖):
pnpm add -D file:../swagger-admin或从 git 安装(按你自己的仓库地址调整):
pnpm add -D git+ssh://git@your-host/your-org/swagger-admin.gitCLI
1) 生成 Swagger 客户端
swagger-admin swagger --input ./openapi.json --output ./src/api --baseURL https://api.example.com也可以输入 URL:
swagger-admin swagger --input https://example.com/openapi.json --output ./src/api --baseURL https://api.example.com常用可选参数:
--baseURL:index.ts 里的 baseURL 字符串(必填)--httpClientPath:HttpClient import 路径(默认@/utils/request)--templateDir:自定义模板目录(默认使用本包swagger-template)--httpClientType axios|fetch:默认axios
2) 生成 Strapi 枚举
swagger-admin strapi-enums --input https://cms.example.com/api/options --output ./src/api/enum.ts当 --input 不包含 ? 时,会自动拼接默认 query(pageSize/locale/populate)。如果你想完全自定义 query,直接把完整 URL(带 ?)传进去即可。
也可以不传 --input,默认使用本包内置的 data/strapi-enum-options.json 进行离线生成。
作为库使用(可选)
import { generateSwaggerApi, generateStrapiEnums } from 'swagger-admin';
await generateSwaggerApi({
input: 'https://example.com/openapi.json',
output: './src/api',
baseURL: 'https://api.example.com',
onSuccess(result) {
console.log('生成完成:', result.outputDir);
},
});
// 不传 input 时,会读取包内默认 OpenAPI JSON;第二个参数 isStrapi 默认为 false
// await generateSwaggerApi({ output: './src/api', baseURL: 'https://api.example.com' }, true);