主题
OpenAPI 指南
基于 OpenAPI 协议生成请求文件。
用法
我们已在项目中完成具体配置,可在
apps/*/openapi.config.ts
里根据项目实际情况配置。
在项目本地启动运行,会根据后端提供的接口文档自动生成请求文件。如果关闭了运行时自动生成的功能,也可以通过执行指令 pnpm run openapi
手动生成。
配置
以下是配置文件的详细示例:
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'
'request': [{ name: 'foo', as: 'bar' }] // import { foo as bar } from 'request'
},
// 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: ''
},
// 批量配置
batch: [
{
imports: {},
input: '',
output: '',
hooks: {},
presets: [],
credentials: {}
}
]
})
预设
@pubinfo/preset-openapi
提供一些预设来简化配置。
js
import { defineConfig } from '@pubinfo/openapi'
import { presetName } from '@pubinfo/preset-openapi'
export default defineConfig({
presets: [
// 命名预设
presetName({
// 生成函数名的命名方式
// camelCase - 根据接口url拼接成小驼峰
// operationId - 采用 `OpenAPI` 协议中的 `operationId` 字段
functionName: 'camelCase',
}),
]
})