コンテンツにスキップ

Swagger Codegen ジェネレーター

デフォルトのジェネレーター設定が要件を満たさない場合、既存のモジュールやテンプレートを変更したり、新しいモジュールやテンプレートを作成したりするためのさまざまなオプションがあります。

クライアントライブラリのフォーマットを変更する

デフォルトのswaggerクライアントの構文が気に入らない?別の言語がサポートされていることを希望しますか?問題ありません!Swagger Codegenは、jmustacheエンジンでMustacheテンプレートを処理します。当社のテンプレートを修正したり、独自のテンプレートを作成したりできます。

例については、modules/swagger-codegen/src/main/resources/${your-language}をご覧ください。独自のテンプレートを作成するには、独自のファイルを作成し、-tフラグを使用してテンプレートフォルダを指定します。実際に、それほど簡単です。

独自のコード生成モジュールを作成する

新しい言語でプロジェクトを開始し、必要なものが見つからない場合、Swagger Codegenは独自のライブラリを生成するためのプロジェクトを作成するのに役立ちます

ターミナルウィンドウ
1
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar meta \
2
-o output/myLibrary -n myClientCodegen -p com.my.company.codegen

これにより、output/myLibraryフォルダに、README.mdを含む、開始に必要なすべてのファイルが書き込まれます。変更およびコンパイルが完了したら、codegenでライブラリをロードし、独自のカスタムロジックでクライアントを生成できます。

output/myLibraryフォルダでmvn packageを使用してライブラリをコンパイルし、次のようにcodegenを実行します。

ターミナルウィンドウ
1
java -cp output/myLibrary/target/myClientCodegen-swagger-codegen-1.0.0.jar:modules/swagger-codegen-cli/target/swagger-codegen-cli.jar io.swagger.codegen.SwaggerCodegen

Windowsユーザーの場合、クラスパスでは:の代わりに;を使用する必要があります。例:

ターミナルウィンドウ
1
java -cp output/myLibrary/target/myClientCodegen-swagger-codegen-1.0.0.jar;modules/swagger-codegen-cli/target/swagger-codegen-cli.jar io.swagger.codegen.SwaggerCodegen

myClientCodegenがオプションになり、ライブラリの生成に通常の引数を使用できることに注意してください。

ターミナルウィンドウ
1
java -cp output/myLibrary/target/myClientCodegen-swagger-codegen-1.0.0.jar:modules/swagger-codegen-cli/target/swagger-codegen-cli.jar \
2
io.swagger.codegen.SwaggerCodegen generate -l myClientCodegen\
3
-i https://petstore.swagger.io/v2/swagger.json \
4
-o myClient

スタンドアロンジェネレーター開発」も参照してください。

ローカルファイルからクライアントを生成する

サーバーを呼び出したくない場合は、OpenAPI Specファイルをディレクトリに保存し、次のようにコードジェネレーターに引数を渡すことができます。

ターミナルウィンドウ
1
-i ./modules/swagger-codegen/src/test/resources/2_0/petstore.json

CIサーバーでライブラリを作成する場合、Swagger Editorから作成する場合、または飛行機でコーディングする場合に最適です✈️。

無視ファイルのフォーマット

Swagger Codegenは、おそらくすでにご存知の.gitignore.dockerignoreと同様に、.swagger-codegen-ignoreファイルをサポートしています。

無視ファイルは、--skip-overwriteフラグよりも既存のファイルの上書きをより細かく制御できます。無視ファイルを使用すると、個々のファイルやディレクトリを無視するように指定できます。これは、たとえば、生成されたコードの一部のみが必要な場合に便利です。

ターミナルウィンドウ
1
# Swagger Codegen Ignore
2
# Lines beginning with a # are comments
3
4
# This should match build.sh located anywhere.
5
build.sh
6
7
# Matches build.sh in the root
8
/build.sh
9
10
# Exclude all recursively
11
docs/**
12
13
# Explicitly allow files excluded by other rules
14
!docs/UserApi.md
15
16
# Recursively exclude directories named Api
17
# You can't negate files below this directory.
18
src/**/Api/
19
20
# When this file is nested under /Api (excluded above),
21
# this rule is ignored because parent directory is excluded by previous rule.
22
!src/**/PetApiTests.cs
23
24
# Exclude a single, nested file explicitly
25
src/IO.Swagger.Test/Model/AnimalFarmTests.cs

.swagger-codegen-ignoreファイルは、出力ディレクトリのルートに存在する必要があります。

最初のコード生成時には、生成された出力のより詳細な制御のために、CLIオプション--ignore-file-override=/path/to/ignore_fileを渡すこともできます。これは完全なオーバーライドであり、コードを再生成するときに出力ディレクトリ内の.swagger-codegen-ignoreファイルをオーバーライドすることに注意してください。

.swagger-codegen-ignoreファイルのIntelliJでのエディターサポートは、.ignoreプラグインを通じて利用できます。