@lauginwing/openapi-gen
v0.0.4
Published
根据swagger文档生成api代码及其类型
Downloads
2
Readme
openapi-gen
根据 swagger 文档生成 api 代码及其类型
安装
yarn add @lauginwing/openapi-gen
使用
- cli 使用
openapi-gen -c ./config.js
// -c : 设定配置文件所在地址,不传则默认取终端当前目录下的genapiconfig.js
// 本地使用
npx openapi-gen -c ./config.js
- js 调用
import {gen} from '@lauginwing/openapi-gen'
import config from './genapiconfig.ts'
gen(config)
配置
一般情况下,只需配置前四项即可
例子
// config.js
const path = require('path')
module.exports = [
{
api: `https://petstore.swagger.io/v2/swagger.json`,
sdkDir: path.join(__dirname, './src/api/pet'),
namespace: 'Pet',
prefix: '/pet',
},
]
完整类型:
参考 https://github.com/zhang740/openapi-generator#readme
interface config {
/** api文档地址 **/
api: string
/** 生成目录 */
sdkDir: string
/** 复杂类型命名空间 */
namespace?: string
/** 在每个请求的请求地址前加的前缀 */
prefix?: string
saveOpenAPIData?: boolean
autoClear?: boolean
/** 自动清除旧文件时忽略列表 */
ignoreDelete?: string[]
/** 参数类型的模板的地址 */
paramInterfaceTemplatePath?: string
/** Service模板文件路径 */
templatePath?: string
/** Interface模板文件路径 */
interfaceTemplatePath?: string
/** 生成请求库 */
requestLib?: boolean
/** filename style, true 为大驼峰,lower 为小驼峰 */
camelCase?: boolean | 'lower'
/** gen type */
type?: 'ts' | 'js'
/** 生成 Service 类型 */
serviceType?: 'function' | 'class'
/** 拿到 swagger json ,做前置处理,返回处理好的数据 **/
beforeParseSwagger?: (data: SwaggerJSon | OpenApiJson) => Promise<SwaggerJSon | OpenApiJson>
/** 数据处理钩子 */
hook?: {
/** 自定义函数名称 */
customFunctionName?: (data: OperationObject) => string
/** 自定义类名 */
customClassName?: (tagName: string) => string
}
/** path过滤 */
filter?: (RegExp | ((data: APIDataType) => boolean))[]
}