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

基于OpenAPI 3.1生成Spring接口时,如何自定义接口名称?

解决OpenAPI Spring生成器接口命名为ApiApi的问题

针对路径以/api开头导致生成接口类名为ApiApi的问题,提供以下几种可行解决方式:

1. 通过OpenAPI扩展字段指定接口名

在OpenAPI YAML中给对应Tag添加x-codegen-name扩展字段,直接定义生成接口的类名前缀:

tags:
  - name: Welcome
    x-codegen-name: Welcome
paths:
  /api/welcome/v1:
    get:
      tags:
        - Welcome
      # 接口其他配置

配置后生成的接口类会直接命名为WelcomeApi,完全不受路径前缀/api的影响。

2. 开启Tag优先的命名策略

在build.gradle的configOptions中添加useTagsForApiNaming配置,强制生成器优先使用Tag名称作为接口类名前缀,而非路径第一部分:

configOptions = [
        interfaceOnly: 'true',
        useSpringBoot3: 'true',
        useJakartaEe: 'true',
        openApiNullable: 'false',
        generateBuilders: 'true',
        skipDefaultInterface: 'true',
        useTagsForApiNaming: 'true' // 新增配置
]

开启后,只要接口的operation中指定了正确的Tag(如示例中的Welcome),生成器就会以此Tag名称生成WelcomeApi接口类。

3. 自定义生成模板(进阶方案)

如果上述方案无法满足需求,可以自定义Spring生成器的模板来修改类名生成逻辑:

  • 获取OpenAPI Generator官方提供的Spring生成器api.mustache模板
  • 修改模板中的类名生成逻辑,例如移除路径中的/api前缀后再提取名称
  • 在build.gradle中指定自定义模板目录:
configOptions = [
        // 原有配置
        templateDir: "$projectDir/custom-templates" // 指向自定义模板所在目录
]

注意:若多个路径共享同一Tag,生成器会将这些路径合并到同一个接口类中,符合REST接口的分组设计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 11:01:11