@yuanjinlin/gen-api
Version:
轻量化简易一键生成在线文档api接口,告别人力的copy
281 lines (175 loc) • 5.75 kB
Markdown
# gen-api
[](https://www.npmjs.com/package/@yuanjinlin/gen-api) 

## 介绍
> <span style="color:#4569d4">gen-api</span>是一个代码生成工具,基于 [puppeteerjs](http://puppeteerjs.com/#?product=Puppeteer&version=puppeteer-v21.4.1)开发, 可以拉取在线API接口并生成js本地代码接口函数
## 环境要求
首先得有 Node.js,并确保其版本 >= 14.15.0。
## 在线API网站文档的支持:
- [yapi](http://api.doc.jiyou-tech.com/)
## 安装
选择你常用的包管理器将 <span style="color:#4569d4">gen-api</span> 加入项目依赖即可:
```javascript
# npm
npm i gen-api
# yarn
yarn add gen-api
# pnpm
pnpm add gen-api
```
## 使用
1.使用以下命令初始化配置文件你的项目根目录会生成一个文件名为api.config.js配置文件
```javascript
// 初始化一个配置文件
npx gen-api init
// 创建axios的文件
npx gen-api init --axios filePath
```
2.使用以下命令运行<span style="color:#4569d4">gen-api</span>:运行该命令生成完接口之后你的项目根目录会创建一个名为api.data.json的缓存文件
```javascript
npx gen-api
```
3.使用以下命令自定义你的配置文件,<span style="color:#4569d4">gen-api</span> 是从你的项目根目录查找你的配置文件:
```javascript
npx gen-api --c filaPath
```
4.使用以下命令运行你的自定义配置文件
```javascript
npx gen-api --p filaPath
```
## api.config.js 配置项
#### users
- 类型:object
- 默认值: 无
- 必填:是
- 说明:
配置在线文档网站登录账户信息
```javascript
users: {
userName: "xxx",
passWord: "xxx",
},
```
#### genApiName
- 类型:string
- 默认值:yapi
- 必填:是
- 说明:
需要生成在线文档的网站名称
#### domain
- 类型:string
- 默认值:http://api.doc.jiyou-tech.com
- 必填:是
- 说明:
生成在线文档网站域名
#### apiFilePath
- 类型:string
- 默认值: api
- 必填:
- 说明:
需要生成到接口函数的文件夹
#### getRequestFunctionName
- 类型:function
- 默认值: 无
- 必填:
- 说明:
定义生成的接口函数名
```javascript
getRequestFunctionName(apiName:string,apiInfo:object<any>,toCamelCase:() => string):string {
return xxx+apiName
}
```
#### importRequestName
- 类型:string
- 默认值:"import ajax from '@/utils/request'"
- 必填:是
- 说明:
导入请求函数
#### requestOpt
- 类型:object
- 默认值:
- 必填:是
- 说明:
请求函数配置
```javascript
{
// 函数入参参数 可以函数配置
paramsName:'',
// 注释
annotation:Function,
// 自定义的请求函数
requestFunc:
}
```
##### paramsName
- 类型:string | function
- 默认值:data
- 必填:
- 说明:
请求函数的入参模板
```javascript
paramsName(apiInfo:object<any>):string {
}
```
##### annotation
- 类型:function
- 默认值:
@项目名称:
@菜单名称:
- 必填:
- 说明:
接口函数注释模板
```javascript
annotation(apiInfo:object<any>):string {
return
`
@xxx:
@xxx:
`
}
```
##### requestFunc
- 类型:string|function
- 默认值:
- 必填:
- 说明:
自定义请求函数模板
```javascript
requestFunc(apiInfo:object<any>):string {
return `ajax.get()`
}
```
#### projects
- 类型:array<object | number>
- 默认值:
- 必填:是
- 说明:
api文档项目配置项,projects如果是一个number数组类型的值,请传当前项目的项目id,将会生成当前项目下的所有接口,如果你想生成某个分类下的接口项,需要传数组对象配置好项目id和分类id即可生成你当前项目某个分类的接口
#### catIds
- 类型:array<number>
- 默认值:
- 必填:是
- 说明:
分类ID,可以设置多个
#### projectId
- 类型:number
- 默认值:
- 必填:是
- 说明:
项目的唯一标识。支持多个项目
获取方式:打开项目 -> 点开分类 -> 获取projectId 复制浏览器地址栏project/后面的数字 分类ID获取 复制/api/cat\_ 后面的数字。
#### yapi示例:

## 变更日志:
每个版本的详细变更记录在发行说明中。 [发行说明](/CHANGELOG.md)
## 提问:
- 使用明确、具体的标题描述问题。
- 提供问题的详细描述,包括重现步骤、预期行为和实际行为。
- 如果可能,附加屏幕截图或动画来说明问题。
## 贡献代码:
- Fork项目到你的GitHub账户。
- 编写代码时每个类需要继承Generator这个类,在项目src下core文件里面编写你的代码,文件名请和网站的名称一致,src/index.js 引入你的核心代码
- 在本地开发和测试你的代码。
- 提交Pull Request。
## 联系信息
如果你有任何问题或建议,请随时通过我的电子邮件(1075360356@qq.com)与我联系