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

如何自定义openapi-generator-cli@2.5.2的Enum模板去除下划线

解决OpenAPI Generator生成无下划线大写Enum的问题

方案一:修改全局模板(不推荐,更新包会覆盖)

  1. 先定位全局安装的@openapitools/openapi-generator-cli包路径,执行命令:
npm list -g @openapitools/openapi-generator-cli
  1. 进入该路径下的templates目录,找到你使用的前端生成器对应的模板文件夹(比如typescript-axios、javascript等),找到modelEnum.mustache文件。
  2. 打开模板文件,找到枚举成员名称的代码行,比如原内容可能是:
{{enumVarName}} = '{{{value}}}',

将{{enumVarName}}替换为{{enumVarName | replace:"_":""}},去掉所有下划线,修改后如下:

{{enumVarName | replace:"_":""}} = '{{{value}}}',
  1. 保存文件后重新执行生成命令,就能得到无下划线的大写Enum。

方案二:使用本地自定义模板(推荐,避免全局修改被覆盖)

  1. 从全局包的模板目录中复制modelEnum.mustache文件到本地项目的自定义目录(比如./openapi-templates)。
  2. 按方案一中的修改逻辑,调整本地模板文件里的枚举成员名称,去掉下划线。
  3. 在生成命令中添加--template-dir参数指定本地模板目录,示例命令:
openapi-generator-cli generate -i your-openapi-spec.yaml -g typescript-axios -o ./src/api --template-dir ./openapi-templates --additional-properties enumPropertyNaming=UPPERCASE

生成时会优先使用本地修改后的模板,不会影响全局包文件。

补充说明

  • 若不确定enumVarName的生成逻辑,也可以直接对枚举原始值处理:比如用{{value | upperCase | replace:"_":""}},但要确认后端snake_case值转成大写无下划线后是否符合需求。
  • 2.5.2版本的OpenAPI Generator支持Mustache的replace过滤器,该操作是可行的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 11:03:31