mcpField
A
alova-wormhole-usage

alova-wormhole-usage

github.com/alovajs开发540 次安装16 周前更新
代码仓库

关于 alova-wormhole-usage

alova-wormhole-usage 是介绍 Alova 使用 OpenAPI/Swagger 规范生成 API 请求函数和 TypeScript 类型的技能,适合配置 API 代码生成的开发者。它说明配置文件、生成命令及生成过程的定制方式。

主要功能

  1. 01从 OpenAPI 生成请求函数
  2. 02生成 TypeScript 类型
  3. 03配置生成器与输入规范
  4. 04使用插件调整生成内容
  5. 05通过 handleApi 定制 API 描述

适用场景

  1. 01为项目配置 OpenAPI 代码生成
  2. 02调整生成的函数名和参数名
  3. 03按 URL 或标签筛选 API
  4. 04自定义生成的响应数据类型

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alovajs/skills --skill alova-wormhole-usage

安装后在 Claude Code 中输入/alova-wormhole-usage确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
references/
ALOVA_INSTANCE.md
CLI.md
INSTALLATION.md
PROGRAMMATIC_API.md
TROUBLESHOOTING.md

详细介绍

alova 横幅

Alova OpenAPI 集成

客户端用法请参阅 alova-client skill。 服务端(Node/Bun/Deno)用法请参阅 alova-server skill。

Alova 通过 @alova/wormhole 集成 OpenAPI/Swagger 规范,自动生成 API 请求函数和 TypeScript 类型。

工作流

Install → Create alova.config → Run alova gen → Customize alova instance → Use generated APIs

Alova 配置

配置文件

支持的格式:

  • alova.config.cjs:CommonJS 配置文件
  • alova.config.js:ESModule 配置文件
  • alova.config.ts:TypeScript 配置文件

使用 alova init 命令快速创建配置模板。

import { defineConfig } from '@alova/wormhole';

export default defineConfig({
  // API generation settings array
  generator: [
    {
      // OpenAPI file URL or local path
      input: 'http://localhost:3000/openapi.json',

      // Output path
      output: 'src/api',

      // Platform type (swagger)
      platform: 'swagger',

      // Plugin configuration
      plugins: [],

      // Response data media type (default: application/json)
      responseMediaType: 'application/json',

      // Request body media type (default: application/json)
      bodyMediaType: 'application/json',

      // API version (default: auto)
      version: 'auto',

      // Code type: auto/ts/typescript/module/commonjs
      type: 'auto',

      // Global API export name (default: Apis)
      global: 'Apis',

      // Global mount object (default: globalThis)
      globalHost: 'globalThis',

      // Filter/transform API interface functions
      handleApi: (apiDescriptor) => apiDescriptor,
    },
  ],

  // Auto-update configuration
  autoUpdate: true, // or { launchEditor: true, interval: 5 * 60 * 1000 }
});

defineConfig 也可以接受同步或异步函数,以支持更灵活的配置。

预设 Wormhole 插件
插件描述文档
rename重命名 API 函数和参数名称,支持 camelCase/snake_case文档
tagModifier修改 API 标签名称文档
payloadModifier添加、移除或修改 API 参数类型文档
filterApi根据 URL 和标签匹配结果筛选 API文档
apifox自动导入 Apifox 项目文档
importType排除需要自定义的类型文档

用法示例:

import { rename, tagModifier } from '@alova/wormhole/plugin';

export default defineConfig({
  generator: [
    {
      plugins: [
        rename({ style: 'camelCase' }),
        tagModifier({ ... })
      ]
    }
  ]
});
handleApi 钩子

用于自定义 API 配置。在生成每个 API 之前调用。可以修改参数名称、类型或返回类型。

注意:apiDescriptor 参数包含 OpenAPI 文件中每个 API 的信息。详情请参阅 OpenAPI Spec Operation Object。

重命名函数(snake_case → camelCase):

handleApi: (apiDescriptor) => {
  apiDescriptor.operationId = apiDescriptor.operationId.replace(/_([a-z])/g, (match, group) =>
    group.toUpperCase()
  );
  return apiDescriptor;
};

修改标签:

handleApi: (apiDescriptor) => {
  if (apiDescriptor.url.includes('/user')) {
    apiDescriptor.tags = ['userTag'];
  }
  return apiDescriptor;
};

筛选 API:

handleApi: (apiDescriptor) => {
  // Return falsy value to filter this API
  if (!apiDescriptor.path.startsWith('/user')) {
    return;
  }
  return apiDescriptor;
};

修改响应数据类型的生成方式:

handleApi: (apiDescriptor) => {
  apiDescriptor.responses = apiDescriptor.responses?.properties?.data;
  return apiDescriptor;
};

修改生成的数据时,优先使用 Wormhole 插件,而不是 handleApi。插件可以简化逻辑,并按配置顺序执行。

功能与参考文档

功能参考文档
安装与设置references/INSTALLATION
CLI 用法(alova gen、alova init)references/CLI
编程式 API(generate、readConfig)references/PROGRAMMATIC-API
自定义 alova 实例(index.ts)references/ALOVA-INSTANCE
故障排查references/TROUBLESHOOTING

评论

支持 Markdown