1. はじめに
- スキーマ定義からOpenAPI Generatorを使用してC#のサーバー、クライアントのソースをジェネレートしたい
- Jar版を使用したいため、Javaのインストール、設定もしたい
2. Javaのインストール
2.1. ダウンロードサイトを開く
2.2. ダウンロードボタンをクリックする
2.3 インストーラーをダウンロードして開く
2.4. インストールボタンをクリックする
2.5. 閉じるボタンをクリックする
2.6. システム環境変数の編集を開く
2.7. [詳細設計]タブ ? 環境変数ボタンをクリックする
2.8. 追加ボタンをクリックする
2.9. 変数名、値を入力してOKボタンをクリックする
項目 | 値 |
---|---|
変数名 | JAVA_HOME (固定) |
変数値 | (インストールしたディレクトリ) |
2.10. Pathを選択して編集ボタンをクリックする
2.11. 追加ボタンをクリックする
2.12. Javaのパスを追加する
2.13. 上へボタンをクリックして先頭へ移動する
2.14 パソコンを再起動する
- 通常は不要のようだが、自分のPCだとパスが反映されず再起動した
2.15 コマンドプロンプトからJavaのインストールを確認する
3. OpenAPI Generatorのインストール、設定
3.1. OpenAPI Generator JAR版をダウンロードする
- 今回wgetは使用せず、
https://~
のURLを直接開き、手動でダウンロードした
https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/6.2.1/openapi-generator-cli-6.2.1.jar
3.2. バッチファイルを作成する
- サイトを見ても動くコマンド、パラメータがよくわからず最終的にこの形になった
build.bat
@echo off
rem ローカルフォルダにあわせて修正
cd C:\openapi-generator-cli
rem クライアント側のビルド
java -jar ./openapi-generator-cli-6.2.1.jar generate -g csharp-netcore -i ./openapi.yaml -o ./.gen_client -c ./clientConfig.json --global-property modelTests=false,apiTests=false
rem サーバ側のビルド
java -jar ./openapi-generator-cli-6.2.1.jar generate -g aspnetcore -i ./openapi.yaml -o ./.gen_server -c ./serverConfig.json --global-property modelTests=false,apiTests=false
PAUSE
3.3. サーバ側の設定ファイルを作成する
- ASP.Net Core 6 を指定する
- 作成したクラスを継承する想定のためabstractクラスに設定している
serverConfig.json
{
"operationModifier":"abstract",
"aspnetCoreVersion":"6.0",
"buildTarget":"library",
"isLibrary":true,
"packageName":"Org.OpenAPITools.Server"
}
3.4. クライアント側の設定ファイルを作成する
- .Net6を指定する
serverConfig.json
{
"targetFramework":"net6.0",
"packageName":"Org.OpenAPITools.Client"
}
3.5. バッチファイルを実行する
build.bat
を実行すると、下記フォルダにジェネレートしたファイルが出力された
- フォルダ構成
C:\openapi-generator-cli
.gen_client ・・・ Generateしたクライアント側クラスを出力するフォルダ
.gen_server ・・・ Generateしたサーバ側クラスを出力するフォルダ
openapi.yaml ・・・ OpenAPIのスキーマファイル
clientConfig.json ・・・ クライアント側の設定ファイル
serverConfig.json ・・・ サーバー側の設定ファイル
4. 参考文献