1.1.34 • Published 7 months ago

openapi2api v1.1.34

Weekly downloads
-
License
ISC
Repository
github
Last release
7 months ago

openapi2Api

openapi 生成 api 工具

使用

npm i openapi2Api -D

import { genApi } from 'openapi2api'

genApi({
  apiJsonData,
  outDir: "/example/api/modules/ambition",
  apiOutDir: "modules",
  exportApiName: "ambitionApi",
  interfaceOutDir: "interfaces",
  requestUrl: "@/utils/service",
  customUrlPlugin: (url, tags) => {
    let serviceName = "";
    if (tags?.[0]) {
      serviceName = tags[0].split("/")[0];
    }
    switch (serviceName) {
      case "user":
        return "/ambition-api/user" + url;
      case "thing":
        return "/ambition-api/thing" + url;
      default:
        return url;
    }
  },
});

genApi({
  swaggerJsonUrl: "http://172.18.14.28:5010/swagger/Bearer/swagger.json",
  outDir: "/example/api/modules/editor",
  apiOutDir: "modules",
  exportApiName: "editorApi",
  interfaceOutDir: "interfaces",
  requestUrl: "@/utils/service",
  customUrlPlugin: (url, tags) => {
    return url.replace("/graphics/bearer", "");
  },
});

参数

参数名描述
swaggerJsonUrlapi json 地址,swagger 文档中按 F12 可看到 json 请求地址,和 apiJsonData 传入一个即可
apiJsonDataapi 的 json 数据,和 swaggerJsonUrl 传入一个即可
baseUrlbaseUrl 会添加到生成的 url 前面
outDir文件输出目录,如/src/api
exportApiName导出的 api 集合名称
apiOutDirapi 输出目录名
interfaceOutDirinterface 输出目录名
requestUrlrequest 引入地址,使用默认导出,默认路径./request
needExtendTemplate是否需要拓展 api 的模板,并且在 api 中会自动引入拓展文件
customUrlPlugin自定义 url 插件,参数 1:原始 url,参数 2:tags,需要返回格式化后的 url
customGroupPlugin自定义 group 插件,参数:格式化后的 url,需要返回当前 url 的分组,用于创建文件分组
customReqNamePlugin自定义请求方法名称插件,参数 1:格式化后的 url,参数 2:默认生成的 name 名称,需要返回自定义的 name
customInterFacePlugin自定义 interface 内容插件,参数 interface 数据,包含名称,参数类型,是否必填,需要返回对象,key 是 interface 名,value 是对应 interface{}里的内容

Feature

  • 输出目录简化
  • 自动格式化
  • 优化参数判断逻辑 √
  • 支持自定义格式化 url √
  • 优化分组实现逻辑
  • 使用模板来替换文件字符写入
1.1.29

7 months ago

1.1.28

7 months ago

1.1.30

7 months ago

1.1.34

7 months ago

1.1.33

7 months ago

1.1.32

7 months ago

1.1.31

7 months ago

1.1.16

9 months ago

1.1.15

9 months ago

1.1.14

9 months ago

1.1.13

9 months ago

1.1.19

8 months ago

1.1.18

8 months ago

1.1.17

8 months ago

1.1.23

7 months ago

1.1.22

7 months ago

1.1.21

7 months ago

1.1.20

8 months ago

1.1.27

7 months ago

1.1.26

7 months ago

1.1.25

7 months ago

1.1.24

7 months ago

1.1.12

9 months ago

1.1.11

9 months ago

1.1.1

10 months ago

1.0.19

11 months ago

1.1.0

10 months ago

1.0.18

11 months ago

1.0.17

11 months ago

1.0.16

11 months ago

1.1.9

10 months ago

1.1.8

10 months ago

1.0.9

11 months ago

1.1.7

10 months ago

1.0.8

11 months ago

1.1.6

10 months ago

1.1.5

10 months ago

1.1.4

10 months ago

1.1.3

10 months ago

1.1.2

10 months ago

1.1.10

10 months ago

1.0.20

10 months ago

1.0.11

11 months ago

1.0.10

11 months ago

1.0.15

11 months ago

1.0.14

11 months ago

1.0.13

11 months ago

1.0.12

11 months ago

1.0.7

11 months ago

1.0.6

11 months ago

1.0.4

11 months ago

1.0.3

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago