根据swagger构建ts api与接口请求 同时帮助定义好构建接口返回的Interface,目标是大大减小ts开发成本
-
npm i -g swagger2ts
-
配置
config
文件, 默认项目下的.swaggerconfig.js
文件 配置如下module.exports = { controllers: [ // 多个ares路径 多个接口 { root: 'foo.test.env:8080', controller: 'foo-controller', // 爬取一个controller下所有接口 paths: [ // 除了controller外别的接口 '/foo/index', ], }, { root: 'bar.test.env:8081', controller: 'bar-controller', // 爬取一个controller下所有接口 paths: [ // 除了controller外别的接口 '/bar/index', ], }, ], location: { api: './test/api.ts', // 接口地址文件 service: './test/service.ts', // 生成接口发送文件 model: './test/model.ts', // 生成interface文件夹 }, }
-
项目根目录下执行
swagger2ts
命令
-
api.ts
/** * Created on 2018-09-04 */ const base: string = '/base.com' /** * summary 接口的注释 * @type {string} */ export const summary: string = `${base}/test-controller/summary`
-
service.ts
import axios from '@/lib/axios' import { summary } from './api' export const fetchsummary = async (payload = {}): Promise<any> => { const response = await axios(summary, payload, 'get') return response }
-
Interface.ts
export interface IActivityProduct { aliasName?:string // 奖品别名 name?: string, id?: string, }