1.0.14 • Published 17 days ago

swagger2-tools v1.0.14

Weekly downloads
-
License
MIT
Repository
-
Last release
17 days ago

swagger2-tools

该工具支持 swagger-ui 和 Knife4j 的后端接口,转换为 ts 格式的 model、api、apiHook。

工具介绍

  • 目前只支持 swagger 2.0
  • 可以选择生成相关的文件,包含 model、api、apiHook

安装

npm install -g swagger2-tools

命令说明

cd 到你的工作目录,执行:

s2t --help // 查看命令说明
s2t i // 初始化配置文件
s2t init // 初始化配置文件
s2t u http://XXX/swagger-ui.html  // 把url对应的swagger生成相关的model、api、apiHook
s2t url http://XXX/swagger-ui.html // 把url对应的swagger生成相关的model、api、apiHook

swagger2ts.jsonc 配置说明

默认是可以不做任何修改的

属性说明默认值
swaggerVersion支持的 swagger 版本"2.0"
includeTags包含的 Controller。空是所有,配置了就匹配配置内容(swagger-ui 中 Controller 的中文名称或者英文都支持)[]
excludeTags排除的 Controller (高优先级)[]
fileSettingsmodel 和 Api 生成规则配置(FileSetting 对象){}
serverNameSettingsswagger 的服务名称(映射英文名称,NameMapping 对象集合)[]
isHttps是否使用 https 获取 swagger 信息false

FileSetting 对象 说明

属性说明默认值
content生产文件的内容 all:全部 onlyModel:只生成实体"all"
topDirPath生产文件夹的路径 默认根目录下"src""src"
topAliasapi 和 hook 引用对象的前缀别名"/@"
axiosImportContentaxios 引用文本"import { http } from '/@/utils/http'"
messageImportContenterrorMessage 函数的引用文本"import { errorMessage } from '/@/utils/message/index'"
model接口实体的生成配置(ModelConfig 对象){}
api接口 http 调用配置(ApiConfig 对象){}

ModelConfig 对象 说明

属性说明默认值
dirName实体生成的文件夹名称 默认根目录下"models""models"
createMode生产文件的模式 add:追加 overwrite:覆盖 默认是覆盖(目前追加不支持)"overwrite"

ApiConfig 对象 说明

属性说明默认值
dirName实体生成的文件夹名称 默认根目录下"apis""apis"
createMode生产文件的模式 add:追加 overwrite:覆盖 默认是覆盖(目前追加不支持)"overwrite"
nameMode生成接口的名称的模式:operationId 、url"url"
urlLevel截取名称的层级 默认是 22
requestMethod请求类型的大小写模式:lowerCase、upperCaselowerCase
domainName多服务时,服务别名映射(NameMapping 对象集合)[]

NameMapping 对象 说明

属性说明默认值
nameswagger 的 info 属性的 title 内容""
fileName映射的内容或者名称""

Model 生成代码 demo

/** 交易统计 POST /pc/statistics/trade */
export type GroupByVO = {
  /* 收款金额 */
  amount: number,
  /* 收款笔数 */
  count: number,
  /* 时间 */
  text: string,
}
/** 交易统计 POST /pc/statistics/trade */
export type TradeStatisticsVO = {
  /* 新增渠道商 */
  agencyAddCount: number,
  /* 活跃渠道商 */
  agencyCount: number,
  /* 新增商户数量 */
  merchantAddCount: number,
  /* 活跃商户数量 */
  merchantCount: number,
  /* 交易图表数据 */
  orderChartList: GroupByVO[],
  /* 退款图表数据 */
  refundChartList: GroupByVO[],
  /* 渠道商top10数据 */
  top10Agencies: Top10Data[],
  /* 商户top10数据 */
  top10Merchants: Top10Data[],
  /* 门店top10数据 */
  top10Stores: Top10Data[],
  /* 渠道商总数 */
  totalAgencyCount: number,
  /* 商户总数量 */
  totalMerchantCount: number,
  /* 收款总金额 */
  totalOrderAmount: number,
  /* 收款总笔数 */
  totalOrderCount: number,
  /* 收款总手续费 */
  totalOrderFeeAmount: number,
  /* 退款金额 */
  totalRefundAmount: number,
  /* 退款总笔数 */
  totalRefundCount: number,
  /* 退款总手续费 */
  totalRefundFeeAmount: number,
}

/** 交易统计 POST /pc/statistics/trade */
export type CommonResponseTradeStatisticsVO = {
  /*  */
  errorCode: string,
  /*  */
  errorCodeDes: string,
  /* 业务对象 */
  item: TradeStatisticsVO,
  /*  */
  resultCode: string,
}

Api 生成代码 demo

import {
  TradeStatisticsRequest,
  CommonResponseTradeStatisticsTop10VO,
  CommonResponseTradeStatisticsVO,
} from '/@/models/ServerName/StatisticsController'
import { http } from '/@/utils/http'

export const DOMAIN = ''

/**
 * 交易统计
 * @returns CommonResponseTradeStatisticsVO
 */
export const statisticsTrade = (
  data: {},
  config?: any
): Promise<CommonResponseTradeStatisticsVO> => {
  return http.request('POST', DOMAIN + '/pc/statistics/trade', {
    data,
    ...config,
  })
}

ApiHook 生成代码 demo

import { CommonResponseTradeStatisticsVO } from '/@/models/ServerName/StatisticsController'
import { statisticsTrade } from '/@/apis/ServerName/StatisticsController'
import { errorMessage } from '/@/utils/message/index'

/**
 * 交易统计
 * @returns CommonResponseTradeStatisticsVO
 */
export const useStatisticsTrade = async (
  config?: any
): Promise<CommonResponseTradeStatisticsVO | undefined> => {
  try {
    const result = await statisticsTrade({}, config)
    if (result.resultCode.toUpperCase() != 'SUCCESS') {
      errorMessage('交易统计操作失败,原因:' + result.errorCodeDes)
      return undefined
    } else {
      return result
    }
  } catch (e) {
    errorMessage('交易统计操作失败,信息:' + e.message)
    return undefined
  }
}
1.0.14

17 days ago

1.0.13

18 days ago

1.0.12

19 days ago

1.0.9

24 days ago

1.0.8

24 days ago

1.0.7

24 days ago

1.0.6

24 days ago

1.0.5

24 days ago

1.0.11

24 days ago

1.0.10

24 days ago

1.0.3

25 days ago

1.0.2

25 days ago

1.0.1

26 days ago

1.0.0

26 days ago