Skip to content

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',
    }),
  ]
})

最后更新于: