Generate request files according to the OpenAPI.
npm install @pubinfo/openapi[![npm version][npm-version-src]][npm-version-href]
[![Monorepo][monorepo-src]][monorepo-href]
![License][License-src]
> Generate request files according to the OpenAPI.
Need config file in your project root directory:
``js`
// openapi.config.js / openapi.config.ts
export default {
/ options /
}
and then run:
`bash`
npx @pubinfo/openapi@latest generate
`js
import { defineConfig } from '@pubinfo/openapi'
export default defineConfig({
// 是否启用,默认 true
enabled: true,
// 忽略缓存强制生成接口文件,默认 false
force: false,
// 预设配置
presets: [
presetName({ / preset options / }),
],
// 文件默认导入
imports: {
'@/api': 'request', // import request from '@/api'
'request': ['foo', 'bar'], // import { foo , bar } from 'request'
'./api': [{ name: 'foo', as: 'bar' }] // import { foo as bar } from './api'
},
// Swagger2.0 / OpenAPI3.0 地址,直接指向JSON的地址
input: 'http://your/api-doc',
// 文件输出目录
output: '/src/api',
// 缓存目录
cacheDir: 'node_modules/.pubinfo-openapi',
// 自定义 hooks, 透传 @umijs/openapi 的 hook 配置
hooks: {
customFunctionName: data => data.operationId
},
// 接口文档登录凭证
credentials: {
username: '',
password: ''
},
// 请求远程文档时的超时时间, 为0不限制超时时间
timeout: 5000,
// 批量配置
batch: [
{
imports: {},
input: '',
output: '',
hooks: {},
presets: [],
credentials: {},
timeout: 0
}
]
})
``
[npm-version-src]: https://img.shields.io/npm/v/@pubinfo/openapi?style=flat-square
[npm-version-href]: https://npmjs.com/package/@pubinfo/openapi
[monorepo-src]: https://img.shields.io/badge/Monorepo-with%20pnpm-F5871D.svg
[monorepo-href]: https://pnpm.io/workspaces
[License-src]: https://img.shields.io/badge/license-MIT-green