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

如何让openapi-generator将长命名Dto简化为MyDto?

解决OpenAPI Generator生成过长DTO名称的问题

当你的OpenAPI规格文件里定义了Abc.Def.MyDto这类带点分隔的命名,生成后变成冗长的AbcDefMyDto,可以用以下几种方式简化成MyDto:

1. 直接修改OpenAPI规格文件

直接在open-api-spec.json的definitions节点下,把Abc.Def.MyDto的键名改成MyDto,同时检查所有引用该DTO的地方(比如$ref路径),同步更新为#/definitions/MyDto。这种方法最简单直接,生成工具会直接使用修改后的名称作为类名。

2. 使用自定义配置文件映射名称

创建一个config.json文件,通过modelNameMapping配置项手动映射长名称到短名称:

{
  "modelNameMapping": {
    "Abc.Def.MyDto": "MyDto",
    // 可添加更多需要映射的DTO
    "Xyz.Another.LongDto": "AnotherDto"
  }
}

然后修改生成命令,加上-c参数指定配置文件:

docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli generate -i local/open-api-spec.json -g typescript-fetch -o /local/out/Typescript -c /local/config.json

3. 自定义模板批量处理

如果有大量这类带前缀的DTO需要统一处理,可以自定义生成模板:

  • 先导出TypeScript-Fetch的默认模板到本地:
    docker run --rm openapitools/openapi-generator-cli author template -g typescript-fetch -o /local/templates
    
  • 找到模板中的model.mustache文件,修改类名生成逻辑,比如截取名称中最后一个.后面的部分作为类名。
  • 生成时通过-t参数指定自定义模板目录:
    docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli generate -i local/open-api-spec.json -g typescript-fetch -o /local/out/Typescript -t /local/templates
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 00:14:56