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

OpenAPI Generator配置:将同父路径下的API生成至不同API类

当然可以!OpenAPI Generator 提供了清晰的配置方式来控制 API 类的分组与命名,核心思路是通过**标签(tags)**对不同业务域的 API 操作进行归类,让工具按标签生成独立的 API 类。下面是具体的实现步骤:

第一步:在 OpenAPI 规范中为 API 操作添加专属标签

默认情况下,Generator 会用路径的第一部分(比如 /clusters/{id}/servers 里的 clusters)作为标签自动分组,这也是你之前得到 ClustersApi.java 的原因。要生成 ServersApi.java 和 StoragesApi.java,你需要手动给对应路径的操作设置专属标签:

举个 OpenAPI YAML 规范的示例片段:

paths:
  /clusters/{id}/servers:
    get:
      tags: ["Servers"]  # 为该操作指定标签为 Servers
      summary: 获取指定集群下的服务器列表
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 成功返回服务器列表数据
  /messages/{id}/storages:
    get:
      tags: ["Storages"]  # 为该操作指定标签为 Storages
      summary: 获取指定消息对应的存储信息
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 成功返回存储详情

第二步:生成代码时开启按标签分组的配置

在调用 OpenAPI Generator 生成代码时,需要明确启用按标签分组的选项,并指定 API 类的命名规则。以 Java 生成器为例,命令行参数可以这样设置:

openapi-generator generate \
  -i your-openapi-spec.yaml \
  -g java \
  --api-package com.yourcompany.api \  # 指定 API 类的包路径
  --group-by-tag \  # 开启按标签分组的核心配置
  --api-name-template "{tag}Api"  # 定义类名格式:标签名 + Api,比如 ServersApi

额外的细节调整

  • 同一个标签下的所有 API 操作会被合并到同一个类中,这正好适配把同业务域 API 放在一起的需求;
  • 如果需要更灵活的标签控制,还可以使用 x-codegen-tag 扩展字段(在路径或操作级别)覆盖默认标签,比如:
    /clusters/{id}/servers:
      x-codegen-tag: "Servers"
      get:
        # ... 操作配置
    
  • 部分语言的生成器还支持其他分组策略(比如按操作 ID、按路径分段),但按标签分组是最通用且易维护的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 16:04:08