wxq-api-ci
v0.0.4-beta.3
Published
快速生成api文档对应ts的interface文件
Downloads
7
Maintainers
Readme
Swagger|Yapi TypeScript interface生成
目前已支持swagger2.0,后续支持swagger3.0 以及Yapi
Getting Started
Install with NPM:
npm install wxq-api-ci -D
Install with pnpm:
pnpm add -D wxq-api-ci
Usage
npx wxq-api-ci
Options
在项目根目录创建wxq-api-ci.config.js文件,并添加内容配置
const config = {
docUrl: 'http://domain.com', // swagger等服务域名
path: '', // swagger的json访问path
group:'', 服务分组名称,如果不传则为单个服务或者匹配全部服务
type: 'swagger2', // 支持解析的文档类型 swagger2 | swagger3 | yapi
build: {
outDir: 'api', // interface & api 的生成路径
apiOutput: {outDir: "", filename: "",hostAchor:""}, // api的生成路径,不设置即读取outDir路径
filename: 'api.d.ts', // interface 的生成文件名
}, // 自动化生成配置
requestFrom: '', // api文件引包 eg: import { request } from "src/utils/request";
/**
* 针对 iso8601 时间格式字符串的自定义类型
* @description 如果在 http 请求返回数据时统一做时间数据转换,比如统一转换为 Date 或者 Moment,那么可以在这里设置对应的类型
*/
isoString: {
typeName: 'Moment',
import: 'import { Moment } from "moment"',
},
regexp: "", // 正则匹配过滤符合apiUrl规则的接口集合
urls: string[], // 接口url集合,只转化这些接口
include: [], // 过滤一级目录集合 tag
exclude:[], // 排除一级目录集合 tag
};
module.exports = config;
inteface rule
header
生成规则:path + By + 参数 + 请求方式 + Query
/** eg */
get -- "/user/info?id=1"
/** 生成的interface */
interface userInfoGetQuery {
}
url参数
生成规则:path + By + 参数 + 请求方式 + Param
/** eg */
get -- "/user/info/{id}"
/** 生成的interface */
interface userInfoByIdGetParam {
}
body
生成规则:path + 请求方式 + Body
response
生成规则:path + 请求方式 + Response