1.2.4 • Published 2 years ago

auto-servers v1.2.4

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

auto-servers

description

自动抓取yapi上的接口信息,并生成servers方法的cli工具

坑点

路径别名

  • moudle-alias 的 addAlias是失效的, 所以说只能在package.json 中写_moduleAliases 添加路径别名。
  • moudle-alias 目前路径 @ 指向打包出来的文件夹,开发环境tsconfig-path会生效,指向src文件夹

运行流程

create: create -> 获取apis -> 将api打平获取本次允许所要使用的api -> 创建类型的 -> 创建函数

使用方法

安装与初始化

npm install auto-servers -g & yarn add auto-servers global
atss init # 项目初始化,配置文件默认名称 .asconfig.js
atss init xxx # 项目初始化,配置文件默认名称 xxx.asconfig.js

生成

通过默认配置文件

默认会以当前目录的.asconfig.js作为配置文件

atss create # 获取全部的接口类型
atss create -t xxxxx # 获取xxxx类型的接口,或者url为xxxxx,或者xxxx集合的接口脚手架会自动识别

指定配置文件

atss create -c xxxx # 以当前目录的xxxx文件作为配置文件创建接口
atss create -t xxxxx -c xxxx # 获取xxxx类型或url或集合,以当前目录的xxxx文件作为配置文件创建接口

配置文件

AsCofig

属性说明类型默认值必须
projectId项目idstring-true
token项目tokenstring-true
mockUrlyapi的mock地址,写上域名就够了,例如:http://yapi.xxxxxxx.comstring'http://yapi.xxxx.com'false
importModel引入的modulesstring[]"import request from '@/utils/request'"false
collections接口集合,通过yapi上的tag和分类来区分集合,是数组的时候识别为tag,字符串的时候识别为分类string{}false
outPath方法生成的目录string'src/servers'false
serviceTemplate生成的方法模版TemplateFunction'($RequestQuery) => request<$ResponseType>($Url, { params: $Params, data: $Data, method: $Method})'false
importTypeModel类型文件中引入的modulestring[][]false
typeRootNode返回的参数解析类型的节点,默认是data节点开始解析string'data'false
extendName生成的文件的拓展名,分为.js 和 .ts'.js'|'.ts''.ts'false
tsType是否需要生成ts类型booleantruefalse
exportType类型的导出形式,分为 declare 和 export两种'declare'|'export''declare'false
typeNamespace型的命名空间string'Request'false
defaultApisType默认的接口分类,当接口找不到分类时用的分类目录名称string'utils'false

TemplateFunction

  • 生成方法的模版方法,默认的是一个字符串,集成了一个servers方法主要部分的的语法糖
`($RequestQuery) => request<$ResponseType>($Url, { params: $Params, data: $Data, method: $Method})`
属性说明
$RequestQuery参数的方法,有query参数会生成 params, 有请求体参数会生成data
$ResponseType响应类型的
$Method请求方式
$Url请求的url,集成了路由穿参的处理
$Params请求的query参数,会自动识别方法中的第一个参数名称
$Data请求的请求体data参数,会自动识别方法中的第二个参数名称
  • 也可以是一个函数,通过自己的编程方式动态生成方法,在这个方法中同样也是可以使用模板方法中集成的语法糖
(api) => {
  const {url, paramsType, dataType, responseType , method, paramsHandle,  urlHandle, requestDataHandle, apiDetail} = api
  return (
    `(${paramsHandle(paramsType, dataType)}) => 
request<$ResponseType>($Url, { params: $Params, data: $Data, method: $Method })`
  )
}

参数说明: | 属性 | 说明 | 类型 | | ---- | ------- | ---- | | url | 接口的url | string | | paramsType | query参数类型,没有query时为空字符串 | string | | dataType | 请求体参数类型,没有请求体时为空字符串 | string | | responseType | 响应的类型,没有响应的数据是为空字符串 | string | | method | 请求方式 | string | | paramsHandle | $RequestQuery 的处理函数 | (paramsType?: string, dataType?: string, params?: string, data?: string) => string | | requestDataHandle | $Params 和 $Data 共同的处理函数 | (paramsType?: string, dataType?: string, params?: string, data?: string) => string | | urlHandle | $Url 的处理函数 | (url: string, params?: string) => string | | apiDetail | yapi上接口的详细数据 | ApiDetail |

配置文件辅助包

使用辅助包之后,配置文件中可以有相关的代码提示

npm install as-config & yarn add as-config

TODO

方法的更新操作