通过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
-
20220517
- 增加初始化方法 进行清洗数据
- 初始化 req_body_other 添加到 req_body_form 里
- 增加文件更新标识,来固定内容输出位置
- 优化数据输出,
- 添加询问使用mock请求
- 增加初始化方法 进行清洗数据
- [x] 模板自定
- [x] 输出d.ts描述文件
- [x] 通过输出文件名字不同进行不同的设置
- [x] 可以通过目录切割api文件
- [x] 增量更新文档
- [ ] 目前是使用axios适配的,需要扩展xhr库的使用形式。
- [ ] 结合vscode编辑器,作为扩展,方便使用