Skip to content

sharebravery/openapi2typescript

 
 

Repository files navigation

介绍

根据 OpenApi3 文档生成对应模型以及 request 请求代码。

  • 类型即文档
  • 生成可以实例化的 class,而非 interface,一行代码实例化解决无属性烦恼(new className())
  • 使用类和静态方法重新组织代码结构
  • 对 API FOX 进行了适配 (java 等可以不写 swagger 注解 直接写注释 使用 api fox 生成文档和 json 文件)

使用

npm i --save-dev @sharebravery/openapi

在项目根目录新建 openapi.config.ts

const { generateService } = require('@sharebravery/openapi');

generateService({
  schemaPath: 'http://petstore.swagger.io/v2/swagger.json',
  serversPath: './.generated',
});

package.jsonscript 中添加 api: "gen:api": "ts-node openapi.config.ts",

生成 api

npm run gen:api

参数

属性 必填 备注 类型 默认值
requestLibPath 自定义请求方法路径 string -
requestImportStatement 自定义请求方法表达式 string -
apiPrefix api 的前缀 string -
serversPath 生成的文件夹的路径 string -
schemaPath Swagger 2.0 或 OpenAPI 3.0 的地址 string -
projectName 项目名称 string -
namespace 命名空间名称 string Models
mockFolder mock 目录 string -
enumStyle 枚举样式 string-literal | enum enum
nullable 使用 null 代替可选 boolean false
dataFields response 中数据字段 string[] -

fork by https://github.com/chenshuai2144/openapi2typescript

About

根据 OpenApi3 文档生成对应模型以及 request 请求代码

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 83.9%
  • Nunjucks 10.8%
  • JavaScript 5.3%