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
相关产品推荐
相关产品推荐

