yapi-tools
v0.4.6
Published
yapi的配套工具,自动获取接口信息
Downloads
2
Readme
使用
通过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文档中可以自主添加标识符来控制内容添加的位置
配置信息
| 配置信息 | 描述 | 备注 |
|-|-|-|
|isOriRes |then里的处理方式,默认是会取到的value值,若不想自动取value值,那么就设置为false
,直接将res返回|默认是true |
|tem |模板文件| |
|dtsObjectKey |d.ts 文件响应值生成的参考数据源,默认是'value'| |
| 字段说明 | 描述 | 备注 | |-|-|-| |baseUrl |项目域名,为yapi访问的域名| | |token |项目token,做用户验证,在项目设置里,做项目的区分| | |outPutFile |输出文件;输出文件到集测。| | |mockUrl |mock地址,(自动生成)| | |lastSelectMenus |上次选择的目录,以便再次执行| | |apiList |上次选择的接口,以便再次执行| |
设置模版文件
模板参数说明
|配置信息 | 描述 | 备注 |
|-|-|-|
|apiName |接口名称||
|inParamData |所有入参数据 例如:body = [], options = {}
||
|inParamDataOfInterface |带有类型描述的入参||
|methodLocalStr |方法名称 支持post,get,put,delete等||
|apiPath |:接口地址||
|paramsData | ajax方法接收的参数格式 | body, {headers: { 'Content-Type': 'application/json'}, ...options}
|methodLocalStr |方法名称 支持post,get,put,delete等||
|jsDoc |jsdoc的数据||
|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
增加枚举类型值的提示
20220623
增加d.ts 描述文件
增加响应值智能提示
20220517
- 增加初始化方法 进行清洗数据
- 初始化 req_body_other 添加到 req_body_form 里
- 增加文件更新标识,来固定内容输出位置
- 优化数据输出,
- 添加询问使用mock请求
- 增加初始化方法 进行清洗数据
TODO
- [x] 模板自定
- [x] 输出d.ts描述文件
- [x] 通过输出文件名字不同进行不同的设置
- [x] 可以通过目录切割api文件
- [x] 增量更新文档
- [ ] 目前是使用axios适配的,需要扩展xhr库的使用形式。
- [ ] 结合vscode编辑器,作为扩展,方便使用