1.0.10 • Published 18 days ago

swagger-to-axios v1.0.10

Weekly downloads
74
License
ISC
Repository
github
Last release
18 days ago

说明文档

这是一个用 swagger 文档生成用于 axios 的 api 文件的模块,支持生成 ts 和 js 文件。

使用这个模块需要先导入模块的默认导出,默认导出是一个函数。 这个函数的第一个参数(必填)为需要访问的文件名(文件名请访问内部的 api 接口文档地址网页);第二个参数(选填)是可选配置项,配置内容如下。

/** swagger 文档配置项 */
declare interface SwaggerDocument {
  /** swagger 文档地址 */
  url: string;
  /** 
   * 生成文件后该文档的文件夹名称。
   * 默认值:字符串随机数。
   * */
  name?: string;
}

/** 生成文件配置项 */
declare interface Config {
  /**
   * 生成文件时,每个函数是否携带 baseURL 属性。
   * 默认值:true。
   * */
  includeBaseURL?: boolean;
  /**
   * cli类型。
   * 默认值:VueCli。
   * 注:
   * 1、如果 includeBaseURL 为 false,则不需要配置该项。
   */
  cliType?: 'Vite' | 'VueCli';
  /**
   * host 的配置名称。
   * 默认值:VUE_APP_HOST | VITE_APP_HOST(根据 cliType 属性)。
   * 注:
   * 1、如果 includeBaseURL 为 false,则不需要配置该项。
   * 2、如果 swagger 的 host 填写了正确的地址,你也可以完全不配置该项,生成的代码会使用三目运算符,并将非的表达式设置为 swagger 的 host。
   */
  envHostName?: string;
  /**
   * 网络协议的配置名称。
   * 默认值:VUE_APP_PROTOCOL | VITE_APP_PROTOCOL(根据 cliType 属性)。
   * 注:
   * 1、如果 includeBaseURL 为 false,则不需要配置该项。
   * 2、推荐只在生产环境和开发环境使用不同协议时配置该项。
   * 3、VUE_APP_PROTOCOL / VITE_APP_PROTOCOL 的值应该为 'https' 或者 'http'。
   */
  envProtocolName?: string;
  /**
   * 是否使用 https。
   * 默认值:false。
   * 注:
   * 1、如果 includeBaseURL 为 false,则不需要配置该项。
   * */
  https?: boolean;
  /**
   * 生成的文件所在目录。
   * 默认值:./apis。
   * */
  outputFolder?: string;
  /**
   * 需要引用的 axios 函数地址。
   * 默认值:window.axios。
   * */
  improtAxiosPath?: string;
  /**
   * 是否生成 ts 文件。
   * 默认值:false。
   * */
  typeScript?: boolean;
  /**
   * url是否放置于 options 中。
   * 默认值:true。
   * 注:
   * 1、如为 false,则将放在第一个参数中。
   * */
  urlInOptions?: boolean;
}

参考用例

const swagger2axios = require('swagger-to-axios');
const swaggerDocumentList = ['name'].map((name) => ({
  url: `http://127.0.0.1:14514/swagger?name=${name}.json`,
  name,
}));
swagger2axios(swaggerDocumentList, {
  includeBaseURL: false,
  improtAxiosPath: '@/utils/request',
  https: true
})

/**以下是生成的文件内容*/
// user.js
// 用户相关接口
import request from '@/utils/request';

const basePath = '/api/v1';

//  获取用户信息
export function getUserInfo(params, options) {
  return request({
    url: `${basePath}/user/info`,
    baseURL: `${protocol}://${host}`,
    method: 'get',
    params,
    ...options,
  });
}

注意事项

如果想使用 umi-request,需要写一个文件转换一下,之后将 improtAxiosPath 配置项指向该文件的地址就好了。你要问为什么需要转换一下,因为我懒得多想一个配置项的名称。下面是实例代码:

import { request } from '@umijs/max';
export default request;
1.0.10

18 days ago

1.0.9

4 months ago

1.0.8

4 months ago

1.0.7

6 months ago

1.0.6

7 months ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

0.1.41

1 year ago

0.1.40

1 year ago

0.1.39

1 year ago

0.1.38

2 years ago

0.1.37

2 years ago

0.1.36

2 years ago

0.1.35

3 years ago

0.1.31

3 years ago

0.1.32

3 years ago

0.1.33

3 years ago

0.1.34

3 years ago

0.1.30

3 years ago

0.1.27

3 years ago

0.1.28

3 years ago

0.1.29

3 years ago

0.1.26

3 years ago

0.1.23

3 years ago

0.1.24

3 years ago

0.1.25

3 years ago

0.1.22

3 years ago

0.1.20

3 years ago

0.1.21

3 years ago

0.1.19

3 years ago

0.1.18

3 years ago

0.1.17

3 years ago

0.1.15

3 years ago

0.1.16

3 years ago

0.1.14

3 years ago

0.1.13

3 years ago

0.1.12

3 years ago

0.1.11

3 years ago

0.1.10

3 years ago

0.1.9

3 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.4

3 years ago

0.1.5

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.0.1

3 years ago