0.4.6 • Published 1 month ago

yapi-tools v0.4.6

Weekly downloads
-
License
ISC
Repository
-
Last release
1 month ago

使用

通过npm 使用安装的 npm i yapi-tools -g --registry 学良的本地目录 例如 <http://10.1.174.84:4873>

源码使用:在本文件夹 执行 npm link 将命令安装到全局,

在命令行键入 yapiTools即可使用。

本工具将在执行目录生成 yapi.tool.config.js配置文件

支持自定义模板

生成代码示例:

/**
 * @name 判断是否是管理员
 * @apiAuthor 接口负责人: NBT
 * @addTime   添加时间 : 2022年3月22日 15:8:56
 * @upTime    更新时间 : 2022年3月22日 15:8:56
 * @yapiUrl   接口地址: https://*.*.*.com/project/1199/interface/api/42659
 * @param {string} orgId - 路径参数: 
 * @param {object} [options={}] - axios请求配置参数,例如timeout等
 * @return {Promise}
 */
export const userAndAppVisibleListIsAdminOrgId = (orgId, options = {}) => {
  return http
    .get(`/userAndAppVisibleList/isAdmin/${orgId}`, options)
    .then(res => {
      if (res.data.result) {
        return Promise.resolve(res.data.value)
      } else {
        return Promise.reject(res.data.error)
      }
    })
    .catch(res => {
      return Promise.reject(res)
    })
}

支持内容分割

针对已存在的api文件进行接口生成 ,首次使用会保留已有的代码 在代码下放注入生成的内容,格式如下

// --yapi-tools-auto-output-begin--

// 中间是接口的内容

// --yapi-tools-auto-output-end--

后续的代码更新只会更新 标识符--yapi-tools-auto-output-begin----yapi-tools-auto-output-end--中间的内容

标识符begin之前的代码和end之后的代码将会保留

以此,用户可以和自动生成文件共同使用同一个文件

注意:在生成时需要先保存自有的代码

由此可推导出,在现有的api文档中可以自主添加标识符来控制内容添加的位置

配置信息

配置信息描述备注
isOriResthen里的处理方式,默认是会取到的value值,若不想自动取value值,那么就设置为false,直接将res返回默认是true
tem模板文件
dtsObjectKeyd.ts 文件响应值生成的参考数据源,默认是'value'
字段说明描述备注
baseUrl项目域名,为yapi访问的域名
token项目token,做用户验证,在项目设置里,做项目的区分
outPutFile输出文件;输出文件到集测。
mockUrlmock地址,(自动生成)
lastSelectMenus上次选择的目录,以便再次执行
apiList上次选择的接口,以便再次执行

设置模版文件

模板参数说明

配置信息描述备注
apiName接口名称
inParamData所有入参数据 例如:body = [], options = {}
inParamDataOfInterface带有类型描述的入参
methodLocalStr方法名称 支持post,get,put,delete等
apiPath:接口地址
paramsDataajax方法接收的参数格式body, {headers: { 'Content-Type': 'application/json'}, ...options}
methodLocalStr方法名称 支持post,get,put,delete等
jsDocjsdoc的数据
responceValueInterface相应参数

内置系统模板

export const {{apiName}} = ({{inParamData}}) => {
  return http
    .{{methodLocalStr}}(\`{{apiPath}}\`{{@ paramsData}})
    .then(res => {
      if (res.data.result) {
        return Promise.resolve(res.data.value)
      } else {
        return Promise.reject(res.data.error)
      }
    })
    .catch(res => {
      return Promise.reject(res)
    })
}

若是d.ts 模板

{{@ jsDoc}}
export function {{apiName}} ({{@ inParamDataOfInterface}}):Promise<{{@ responceValueInterface}}>

若直接生成ts的话,

{{@ jsDoc}}
export function {{apiName}} ({{@ inParamDataOfInterface}}):Promise<{{@ responceValueInterface}}>{
  return http
    .{{methodLocalStr}}(\`{{apiPath}}\`{{@ paramsData}})
    .then(res => {
      if (res.data.result) {
        return Promise.resolve(res.data.value)
      } else {
        return Promise.reject(res.data.error)
      }
    })
    .catch(res => {
      return Promise.reject(res)
    })
}

若是输出文件是是ts为结尾的,默认输入带有类型的文件;也可以自定义模版

卸载

源码使用: 在本文件夹 执行 npm unlink 即可 npm :npm uninstall yapi-tools -g

更新日志

  • 202403011

    • 增加对不规范的yapi进行兼容
  • 20240306

    • 增加对不规范的yapi进行兼容,例如:cc财税的接口
  • 20230519

    • 增加ts转换相应值的类型导出和入参的类型导出 *ParamsType,*ResultType
  • 20230517

    • 增加ts转换,判断后缀名,是.ts的直接输出ts代码,自带类型的。
  • 20230228
    • 支持给单独文件统一设置Opions参数。一般用于request时的拦截处理
  • 20230211
    • 支持一个项目使用多个yapi项目
    • 支持新增文件时,支持新设项目
  • 20220913

    • 支持支持多个文件切换生成
  • 20220704

    • 支持自定义模版,(目前在配置文件里处理)
    • 支持dts文件响应值自定义取值
  • 20220627

    • 增加枚举类型值的提示

      image-20220627153123028

  • 20220623

    • 增加d.ts 描述文件

    • 增加响应值智能提示

      image-20220627153207086

  • 20220517

    • 增加初始化方法 进行清洗数据
      • 初始化 req_body_other 添加到 req_body_form 里
    • 增加文件更新标识,来固定内容输出位置
    • 优化数据输出,
    • 添加询问使用mock请求

TODO

  • 模板自定
  • 输出d.ts描述文件
  • 通过输出文件名字不同进行不同的设置
  • 可以通过目录切割api文件
  • 增量更新文档
  • 目前是使用axios适配的,需要扩展xhr库的使用形式。
  • 结合vscode编辑器,作为扩展,方便使用