GeekFactory

int128.hatenablog.com

Swagger Codegenにおけるspring-cloudテンプレートのカスタマイズ

Swagger Codegenではコード生成のテンプレートをカスタマイズできますが、ライブラリに spring-cloud を選んだ場合はカスタマイズの仕方に注意が必要です。

springのテンプレート構造は以下になります。

  • template/
    • api.mustache ←すべてのライブラリで共通のテンプレート
    • ...
    • libraries/
      • spring-mvc/
      • spring-boot/
      • spring-cloud/
        • apiClient.mustache ←spring-cloud固有のテンプレート
        • ...

spring-cloud直下のapiClient.mustacheを変更しても、なぜかコードに反映されません。そこで、libraries直下にapiClient.mustacheをコピーして変更すると、コードに反映されるようになりました。

  • template/
    • api.mustache ←すべてのライブラリで共通のテンプレート
    • apiClient.mustache ←ここに配置するとカスタマイズが効く
    • libraries/
      • ...
      • spring-mvc/
      • spring-boot/
      • spring-cloud/
        • apiClient.mustache ←ここを編集してもカスタマイズが効かない
        • ...

罠にはまったので参考になれば幸いです。