You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenAPI Generator:如何按标签选择或跳过指定API生成

问题描述

我有一个包含大量带标签API方法的大型OpenAPI文件,示例如下:

tags:
  - name: Marketplace API
    description: APIs used in order to use Marketplace Payment Flow
  - name: Payment API
    description: Payment API V4. If your integration is using API V2, <a href="/docs/api-migration/payments/">go to migration guide</a>.
  - name: Payouts API
    description: This API allows a merchant to make transfers using a card or a token. He can also retrieve info about past payouts or the current payout balance.

请问是否存在生成器参数或其他方式,可跳过不需要生成的API?我的当前生成命令如下:

for generator in $(cat generator-list.txt)
do
    npx @openapitools/openapi-generator-cli generate \
        --input-spec https://***/docs/swagger/api/v4/docs.yml \
        --generator-name ${generator} \
        --output ./client_${generator} \
        --verbose
done
解决方案

当然有办法,OpenAPI Generator提供了直接的参数来控制要生成的API标签,也有其他替代方案:

1. 使用官方参数过滤标签

方式一:只生成指定标签的API

用--tag参数(可多次使用)指定需要保留的标签,比如只想生成Payment API和Payouts API:

for generator in $(cat generator-list.txt)
do
    npx @openapitools/openapi-generator-cli generate \
        --input-spec https://***/docs/swagger/api/v4/docs.yml \
        --generator-name ${generator} \
        --output ./client_${generator} \
        --verbose \
        --tag "Payment API" \
        --tag "Payouts API"
done

方式二:排除不需要的标签

用--exclude-tag参数(可多次使用)跳过不想生成的标签,比如排除Marketplace API:

for generator in $(cat generator-list.txt)
do
    npx @openapitools/openapi-generator-cli generate \
        --input-spec https://***/docs/swagger/api/v4/docs.yml \
        --generator-name ${generator} \
        --output ./client_${generator} \
        --verbose \
        --exclude-tag "Marketplace API"
done

2. 其他替代方案

修改OpenAPI文件

如果不想每次命令都加参数,可以直接编辑OpenAPI YAML文件,删除不需要的标签及其对应的API路径;或者给不想生成的API加上x-codegen-ignore: true扩展字段,生成器会自动跳过这些API:

paths:
  /marketplace/xxx:
    get:
      x-codegen-ignore: true
      tags:
        - Marketplace API
      # 其他API定义...

使用配置文件

创建一个config.yaml配置文件,在里面指定includeTags或excludeTags,然后用--config参数引入:

# config.yaml
includeTags:
  - Payment API
  - Payouts API
# 或者用excludeTags:
# excludeTags:
#   - Marketplace API

命令修改为:

for generator in $(cat generator-list.txt)
do
    npx @openapitools/openapi-generator-cli generate \
        --input-spec https://***/docs/swagger/api/v4/docs.yml \
        --generator-name ${generator} \
        --output ./client_${generator} \
        --verbose \
        --config config.yaml
done

内容的提问来源于stack exchange,提问作者Alex Babak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 04:35:14