Swagger Codegen ジェネレーター
デフォルトのジェネレーター設定が要件を満たさない場合、既存のモジュールやテンプレートを変更したり、新しいモジュールやテンプレートを作成したりするためのさまざまなオプションがあります。
クライアントライブラリのフォーマットを変更する
デフォルトのswaggerクライアントの構文が気に入らない?別の言語がサポートされていることを希望しますか?問題ありません!Swagger Codegenは、jmustacheエンジンでMustacheテンプレートを処理します。当社のテンプレートを修正したり、独自のテンプレートを作成したりできます。
例については、modules/swagger-codegen/src/main/resources/${your-language}
をご覧ください。独自のテンプレートを作成するには、独自のファイルを作成し、-t
フラグを使用してテンプレートフォルダを指定します。実際に、それほど簡単です。
独自のコード生成モジュールを作成する
新しい言語でプロジェクトを開始し、必要なものが見つからない場合、Swagger Codegenは独自のライブラリを生成するためのプロジェクトを作成するのに役立ちます
1java -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を実行します。
1java -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ユーザーの場合、クラスパスでは:
の代わりに;
を使用する必要があります。例:
1java -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
がオプションになり、ライブラリの生成に通常の引数を使用できることに注意してください。
1java -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 Ignore2# Lines beginning with a # are comments3
4# This should match build.sh located anywhere.5build.sh6
7# Matches build.sh in the root8/build.sh9
10# Exclude all recursively11docs/**12
13# Explicitly allow files excluded by other rules14!docs/UserApi.md15
16# Recursively exclude directories named Api17# You can't negate files below this directory.18src/**/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.cs23
24# Exclude a single, nested file explicitly25src/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プラグインを通じて利用できます。