swagger接口拉取工具,可以生产json模拟数据和typescript声明文件。
npm install fetch-swagger-api
yarn add fetch-swagger-api
import Swagger from 'fetch-swagger-api';
const swagger = new Swagger(params);
swagger()
.query({path: 'activity'})
.toResponseJSON()
.toTypeScript()
.toInterfaceTemp()
type: string | object
string
: swagger的http地址;
object
: swagger的json数据;
模糊匹配api,参数:
- path 【api路径】
- tag 【版本号】
- keyword 【api接口描述关键字】
根据查询结果转换成模拟数据。
.toResponseJSON(callbcak?: function);
回调函数的参数类型:
- [path: string] any
toResponseJSON((data)=>{
/**
* {
'/api/activity': {
code: '200',
data: {
...
},
success: true
* }
* }
* /
})
根据查询结果转换成typescript
的数据类型结构。
.toTypeScript(callbcak?: function);
回调函数的参数类型:
- [path: string] {request: any; response: any;}
toResponseJSON((data)=>{
/**
* {
'/api/activity': {
request: {
props: {}
};
response: {
result: {}
};
* }
* }
* /
})
将上一步的数据结构,转换成typescript
字符串模板,可以在这的回调生成API的.d.ts
文件。
.toInterfaceTemp(callbcak?: function);
回调函数的参数类型:
- propsString: string;
- resultString: string;
toInterfaceTemp((data)=>{
/** data =
* { [path]: {
propsString: string;
resultString: string;
methods: string
}
* }
* /
})
生成模拟数据
- distPath: string;
- fileType?: dir | hump;
- filterPathPrefix?: string
distPath(必填)生成的路径。
.buildMock({distPath: path.resolve('./dist/mock')}
fileType 生成的文件类型
dir 类型是目录
hump 生成驼峰命令类型
filterPathPrefix 过滤路径前缀,
假设swagger的路径是 oms/api/order/get
,我只需要 order/get
,就可以这样写:
.buildMock({filterPathPrefix: 'api'}}
生成api文件。
- distPath: string;
- apiContent: string;
- fileType?: js | ts;
- filterPathPrefix?: string
参数distPath
filterPathPrefix
同 buildMock
。
fileType 生成是js或ts类型的api文件。
apiContent 是自定义生成的api内容,示例:
.buildApi({ apiContent: 'export default axios.{methods}({url})' })
那么导出的文件就是这样的:
export default axios.post('order/get')
提示:以上两个生成文件的方法,都可以通过最上面方法的 callback
实现。