OpenAPI Generatorを使用して、OpenAPI YAMLファイルからJavaコードを自動生成するためにGradleプラグインを利用すると便利。

 

以下に手順を示します。

 

1. Gradleプロジェクトのセットアップ

まず、Gradleプロジェクトを設定します。

 

build.gradleファイルに必要なプラグインと依存関係を追加します。


plugins {
    id 'java'
    id 'org.openapi.generator' version '6.0.1'
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'io.swagger:swagger-annotations:1.6.4'
    // 必要に応じて他の依存関係を追加
}
    

2. OpenAPI Generatorタスクの設定

次に、OpenAPI Generatorタスクを設定します。build.gradleにタスクの定義を追加します。


task generateOpenApiSpringCode(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){
    generatorName = "spring"
    inputSpec = "$rootDir/src/main/resources/api.yaml"  // OpenAPI YAMLファイルのパス
    outputDir = "$buildDir/generated"  // 出力ディレクトリ
    apiPackage = "com.example.api.controller"  // 生成されるAPIコードのパッケージ
    modelPackage = "com.example.api.model"  // 生成されるモデルコードのパッケージ
    configOptions = [
        dateLibrary: "java8"  // Java 8のDateライブラリを使用(不要なら削除)
        interfaceOnly: "true"  // インターフェースのみを生成(不要なら削除)
    ]
}
    

generatorName は、OpenAPI Generatorが生成するコードの言語やフレームワークを指定するためのパラメータで、一般的に、使用する言語やフレームワークを設定します。

 

例えば、generatorName に指定する主な値には以下のようなものがあります:

  • "java": Java言語のクライアントおよびサーバーコード
  • "spring": Spring Bootのサーバーコード
  • "kotlin": Kotlin言語のクライアントおよびサーバーコード
  • "typescript-fetch": TypeScript言語のFetchクライアントコード
  • "python": Python言語のクライアントおよびサーバーコード

3. YAMLファイルの配置

プロジェクト内の適切なディレクトリにOpenAPI YAMLファイルを配置します。

例えば、src/main/resources/api.yamlに配置します。

 

4. コード生成の実行

次に、Gradleタスクを実行してコードを生成します。


./gradlew openApiGenerate
    

これで、指定したディレクトリにJavaコードが自動生成されます。

 

5. 生成されたコードの使用

生成されたコードをプロジェクトに組み込み、適切に使用します。

生成されたコードは、$buildDir/generatedディレクトリに出力されるので、IDEのソースフォルダとして追加することができます。

プレアデス(Eclipse)での操作

プレアデスを使用する場合、同様の手順に従います。

プレアデス内でプロジェクトを作成し、build.gradleファイルを編集し、タスクを設定します。

YAMLファイルを指定したディレクトリに配置し、Gradleタスクを実行します。

 

  1. プロジェクト作成: プレアデスで新しいGradleプロジェクトを作成します。
  2. build.gradleファイル編集: 上記の設定をbuild.gradleファイルに追加します。
  3. YAMLファイル配置: OpenAPI YAMLファイルをsrc/main/resourcesディレクトリに配置します。
  4. タスク実行: プレアデスのターミナルやGradleタスクビューからopenApiGenerateタスクを実行します。

これで、自動生成されたJavaコードをプロジェクト内で利用できるようになります。