0.0.8 • Published 2 years ago

br-qstart v0.0.8

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

br-qstart

根据 YApi 接口文档快速创建 Typescript 接口定义及对应 mock 数据

使用

1. 安装

yarn add br-qstart -D

2. 初始化配置文件

yarn br-qstart init

配置文件默认生成在根目录 qs.config.json

配置文件说明

注:🚧项目 id(project.1) 跟 token(projec.token) 需要根据实际 Yapi 进行替换

{
  // Yapi 项目信息
  "project": {
    // 1 是项目 id,可从 Yapi 接口地址获取 例:http://10.241.70.1:3000/project/1/interface/api/25289  url 1 就是项目 id
    "1": {
      // 项目名称
      "name": "api1",
      // 项目 token 可以在 Yapi 项目 - 设置 - token 配置查看
      "token": "token",
      // 后端接口返回数据格式映射
      // 可以不用配置。如后端接口返回 {resData: {}},需要配置 responseDataFieldName: {data: "resData"}
      "responseDataFieldName": {
        "data": "data",
      },
    }
  },
  // ts 类型输出路径
  "outPath": "_qsTypes",
  // mock 配置
  "mock": {
    // mock api 基础路径, 默认 '/mock'
    "base": '/mock'
  },
  // 生成类型默认使用 interface 定义,genType = true 使用 type 定义
  /**
  * genType = false
  * interface T {
  *
  * }
  * ===================
  * genType = true
  * type T = {
  *
  * }
  */
  "genType": false
}

3. 生成 TS 定义文件

配置文件配置完成,执行:

yarn br-qstart

注意! 🚧🚧🚧复制对应接口的浏览器 url(例:http://10.241.70.1:3000/project/153/interface/api/25289) 地址到终端交互项,按回车,自动生成 types 文件到指定目录

Mock

br-qstart 生成 ts,会自动在根目录 mock/**, 根据 api 接口路径生成 mock 文件。 例:/appSystemAnalysis/appList,生成的文件路径 mock/appSystemAnalysis/appList.json

暂不支持 RESTful api。

启动 mock 服务

yarn br-qstart mock

mock 服务启动后就可以访问 mock 接口,接口路径 = 配置文件 mock.base(默认 /mock) + 根据根目录 mock 目录下的 json 文件确定。

例:

配置文件 mock.base文件路径api
'/mock'{root}/mock/user/info'http://localhost:8088/mock/user/info'
'/mock'{root}/mock/api/user/info'http://localhost:8088/mock/api/user/info'
'/m/api'{root}/mock/user/info'http://localhost:8088/m/api/user/info'

可以配合 webpack-dev-server proxy 配置特定 mock 服务转发

mock 数据

生成的 mock 文件, 使用 mockjs 语法,可以自行查看。

因为 Yapi 获取只有最基本的 Object, Array, Number, String, Boolean, 所以 mock 数据包括:

  • Array:默认生成 1-10 个数组
  • String:随机生成 1-20 长度,小写英文字母字符串
  • Number:随机生成正整数,范围 1-10000

同时扩展了时间戳随机数,用法如下:

{
    "time": "@timestamp"
}
0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago