UNPKG

auto-request

Version:

通过Yapi JSON Schema生成接口Axios或Taro接口

148 lines (129 loc) 3.24 kB
# 简介 通过`yapi`的 swagger json schema 生成 Taro 或 Axios 接口 非`yapi`的swagger可能会出现不兼容 ## 配置 scripts ```json "scripts": { "build:api": "node ./scripts/buildApi.js" }, ``` ## 脚本 ```javascript // source(必填) swagger schema 文件 // apiPath(必填) api生成文件 // type = 'axios'|'taro' // host = 请求前缀 const path = require('path'); const swaggerJsonSchemaRequest = require('swagger-json-schema-request'); const source = path.join(__dirname, './example/yapi.json'); const apiPath = path.join(__dirname, './api/'); const SwaggerJsonSchemaRequest = new CreateApi(source, 'axios', {host: 'https://xxxx'}); SwaggerJsonSchemaRequest.generateFile(apiPath); ``` 生成的文件 接口文件: {path}/index.ts 定义文件: {path}/index.define.ts ## 生成目录 ```bash ├── api │   ├── index.define.ts │   └── index.ts ├── assets │   └── api.json |── scripts | └── buildApi.js | ``` ## 生成文件 ```ts // index.ts import axios from 'axios'; import { ApiverificationsGetParams, ApiverificationsGetResponse, ApicontestantPostParams, ApicontestantPostResponse, ApipersonGetParams, ApipersonGetResponse, ApiloginPostParams, ApiloginPostResponse, } from './index.define'; export const ApiverificationsGet = <P = ApiverificationsGetParams, T = ApiverificationsGetResponse>( params: P, options?: any ): Promise<T> => { return axios.request({ url: `/api/verifications`, method: 'get', params: params, ...options, }); }; ``` ```ts // index.define.ts * tslint:disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ export interface Api { ApiverificationsGetParams?: ApiverificationsGetParams; ApiverificationsGetResponse?: ApiverificationsGetResponse; ApicontestantPostParams?: ApicontestantPostParams; ApicontestantPostResponse?: ApicontestantPostResponse; ApipersonGetParams?: ApipersonGetParams; ApipersonGetResponse?: ApipersonGetResponse; ApiloginPostParams?: ApiloginPostParams; ApiloginPostResponse?: ApiloginPostResponse; [k: string]: unknown; } export interface ApiverificationsGetParams { /** * 手机号码 */ mobile: string; [k: string]: unknown; } export interface ApiverificationsGetResponse { [k: string]: unknown; } export interface ApicontestantPostParams { /** * 工号(没有可为空) */ code: string; /** * 名字 */ name: string; /** * 手机号 */ mobile: string; /** * 事业部 */ business_unit: string; /** * 抖音号 */ tiktok_id: string; /** * 小红书号 */ red_booklet_id: string; [k: string]: unknown; } export interface ApicontestantPostResponse { [k: string]: unknown; } export interface ApipersonGetParams { /** * 手机号码 */ mobile: string; [k: string]: unknown; } ```