@wenext/api-generator
一个基于 swagger-typescript-api 的 API 类型及请求代码生成工具。支持多配置文件、Hooks 拦截、路径过滤等功能,旨在简化前端接口类型的维护工作。
主要功能
- 多配置支持: 支持在一个配置文件中定义多个 Swagger 接口来源。
- 类型自动生成: 自动生成 TypeScript 接口类型定义。
- Hooks 拦截: 提供
onCreateRoute等 Hooks,支持对生成的路径进行过滤或修改。 - CLI 支持: 通过命令行工具快速触发生成流程。
安装指南
在您的项目中安装此包:
bash
pnpm add @wenext/api-generator -D使用方式
1. 创建配置文件
在项目的根目录下新建 api-config.js 文件。
javascript
import path from "path";
import { defineApiGenerationConfig } from "@wenext/api-generator";
// 定义生成代码的输出路径
const genPath = path.resolve(process.cwd(), "./src/genApi");
const UserApiConfig = {
name: "user-api.ts",
output: genPath,
url: "http://43.132.129.76/user/swagger/v2/api-docs",
apiClassName: "UserApi",
hooks: {
/**
* 路由创建时的钩子
* @param route 路由对象
* @returns 返回 route 对象则保留,返回 false 则过滤掉
*/
onCreateRoute(route) {
const includesApiPath = [
'/user/getUserSVipInfo',
'/user/getSVIPConfig',
'/user/updateUserSVipConfig',
'/user/getUserInfoByUid/{uid}',
];
// 仅生成指定的接口
return includesApiPath.includes(route.raw.route) ? route : false;
}
},
};
export default defineApiGenerationConfig(() => {
return {
configs: [UserApiConfig],
};
});2. 配置脚本
在项目的 package.json 中添加生成命令:
json
{
"scripts": {
"gen-api": "api-generator -c api-config.js"
}
}3. 执行生成
bash
pnpm gen-api配置项说明
Config 对象属性
| 属性 | 类型 | 描述 |
|---|---|---|
name | string | 生成的文件名称(如 user-api.ts) |
output | string | 生成文件的输出目录路径 |
url | string | Swagger JSON 接口地址 |
apiClassName | string | 生成的 API 类名 |
hooks | object | 包含 onCreateRoute 等钩子函数 |
Hooks 说明
onCreateRoute(route): 在解析每个接口路径时触发。可以通过返回false来跳过某些不需要生成类型的接口。