0.0.4 • Published 3 years ago

@lauginwing/openapi-gen v0.0.4

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

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))[]

}