yapi-autoapi

1.0.0 • Public • Published

yapi-autoapi

YAPI 接口自动化,生成 ts 文件,即用即取

install

npm i yapi-autoapi -g

初始化

autoapi init

创建 autoapi.config.js 配置文件

// ati.config.js
module.exports = {
  // yapi 项目 url
  url: '',
  // 项目 id
  projectId: '',
  // yapi 项目 token
  token: '',
  // interface 输出目录
  output: '',
  // 项目内的分组 id
  groupId: [],
  // (可选) 自定义 interface name
  customInterfaceName: (name, type) => {
    if (type === 'request') {
      return `${name}RequestType`
    } else {
      return `${name}ResponseType`
    }
  },
  // 支持自定义模板,只需要将按照以下格式传递即可
  // paramsContent, 入参+ 出参的内容,自动生成无需修改
  // functionName, 函数名,自动生成无需修改
  // reqName, 入参名,自动生成无需修改
  // resName, 出参名,自动生成无需修改
  // requestPath, 请求路径,自动生成无需修改
  customTemplate: (
    functionName,
    requestPath,
    requestInterfaceName,
    responseInterfaceName,
    paramsContent
  ) => {
    return `
    import request from 'request'

    ${paramsContent}
    
    export async function ${functionName}(data?: ${requestInterfaceName}): Promise<${responseInterfaceName}> {
      return request(${requestPath}, {
        method: 'post',
        data
      })
    }
    `
  }
}

run: 自动生成 request 文件

autoapi run

configs

属性 说明 类型 默认值
url yapi 项目 url string
projectId 项目 id string
token yapi 项目 token string
output interface 输出目录 string
groupId 项目内的分组 id string[]
customInterfaceName 自定义 interface name CustomInterfaceName
customTemplate 自定义生成文件内容 CustomTemplate

其中CustomTemplate的类型定义如下:

type CustomTemplate = (
  //  生成函数名
  functionName: string,
  //  请求接口地址
  requestPath: string,
  //  请求参数类型名
  requestInterfaceName: string,
  //  响应参数类型名
  responseInterfaceName: string,
  //  参数类型定义内容
  paramsContent: string
) => string

生成结果

import request from './lib/'
/* tslint:disable */
/* This file was automatically generated by auto-request-tool.
 * DO NOT MODIFY IT BY HAND.
 */
export interface UserInfoReq {
  /**
   * 用户id
   */
  userId: string
  /**
   * 用户姓名
   */
  userName?: string
  /**
   * 手机号
   */
  mobile?: string
  /**
   * 是否男性
   */
  male?: boolean
}

export interface UserInfoRes {
  /**
   * id
   */
  id: number
  /**
   * 用户id
   */
  userId: string
  /**
   * 用户姓名
   */
  userName?: string
  /**
   * 手机号
   */
  mobile?: string
  /**
   * 是否男性
   */
  male?: boolean
  /**
   * 头像
   */
  avatar?: string
}

export async function confirmAudit(data: UserInfoReq): Promise<UserInfoRes> {
  return request('/autoapi/request/getUserInfo', {
    method: 'post',
    data
  })
}

Package Sidebar

Install

npm i yapi-autoapi

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

25.5 kB

Total Files

22

Last publish

Collaborators

  • pengjinwen