wormaworma

Apifox 拉取器

直接从 Apifox 导入 OpenAPI 文档,无需手动导出

Apifox 拉取器

本插件用于直接从 Apifox 导入 OpenAPI 文档,无需手动导出本地文件到项目中。

主要功能

  • 支持从 Apifox 项目直接拉取 OpenAPI 文档
  • 支持按标签筛选接口范围
  • 支持多种 OpenAPI 版本和导出格式
  • 支持自定义 Apifox 扩展属性和文件夹标签

使用此插件后不再需要设置 input 字段。

基本使用

import { defineConfig } from 'wormajs';
import { apifox } from 'wormajs/plugin';

export default defineConfig({
  generator: [
    {
      // ...
      plugins: [
        // 从 Apifox 项目拉取 OpenAPI 文档
        apifox({
          projectId: 'proj-123',
          apifoxToken: 'token-abc',
        }),
      ],
    },
  ],
});

配置参数

interface ApifoxOptions {
  /** Apifox 项目 ID */
  projectId: string;
  /** Apifox 访问令牌 */
  apifoxToken: string;
  /** 语言环境,默认 'zh-CN' */
  locale?: string;
  /** Apifox API 版本,默认 '2024-03-24' */
  apifoxVersion?: string;
  /** 按标签筛选接口 */
  selectedTags?: string[];
  /** 排除指定标签的接口 */
  excludedByTags?: string[];
  /** OpenAPI 版本,默认 '3.0' */
  oasVersion?: '2.0' | '3.0' | '3.1';
  /** 导出格式,默认 'JSON' */
  exportFormat?: 'JSON' | 'YAML';
  /** 是否包含 Apifox 扩展属性,默认 false */
  includeApifoxExtensionProperties?: boolean;
  /** 是否将文件夹路径作为标签,默认 false */
  addFoldersToTags?: boolean;
}

function apifox(options: ApifoxOptions): ApiPlugin;

参数说明

参数名类型默认值描述
projectIdstringApifox 项目 ID
apifoxTokenstringApifox 访问令牌
localestring'zh-CN'语言环境
apifoxVersionstring'2024-03-24'Apifox API 版本
selectedTagsstring[]按标签筛选接口
excludedByTagsstring[]排除指定标签的接口
oasVersion'2.0' | '3.0' | '3.1''3.0'OpenAPI 版本
exportFormat'JSON' | 'YAML''JSON'导出格式
includeApifoxExtensionPropertiesbooleanfalse是否包含 Apifox 扩展属性
addFoldersToTagsbooleanfalse是否将文件夹路径作为标签

高级用法

按标签筛选接口

apifox({
  projectId: 'proj-123',
  apifoxToken: 'token-abc',
  selectedTags: ['order', 'user'],
});

排除指定标签的接口

apifox({
  projectId: 'proj-123',
  apifoxToken: 'token-abc',
  excludedByTags: ['test', 'deprecated'],
});

自定义 OpenAPI 版本和导出格式

apifox({
  projectId: 'proj-123',
  apifoxToken: 'token-abc',
  oasVersion: '3.1',
  exportFormat: 'YAML',
});

包含 Apifox 扩展属性

apifox({
  projectId: 'proj-123',
  apifoxToken: 'token-abc',
  includeApifoxExtensionProperties: true,
});

On this page