Gradle Swagger Generator Plugin 2.6.0をリリースしました。OpenAPI YAMLのバリデーション、コード生成、Swagger UI生成を行うためのプラグインです。
New features
複数のOpenAPI YAMLを扱う場合に簡潔に記述できるようになりました。これまではYAMLごとに自分でタスクを定義する必要がありましたが、2.6.0からは swaggerSources ブロックに列挙できるようになりました。
swaggerSources {
petstoreV1 {
inputFile = file('v1-petstore.yaml')
code {
language = 'spring'
configFile = file('v1-config.json')
}
}
petstoreV2 {
inputFile = file('v2-petstore.yaml')
code {
language = 'spring'
configFile = file('v2-config.json')
}
}
}
コードやSwagger UIを生成する前にYAMLバリデーションを行いたい場合は下記の1行を付け足します。
code {
language = 'spring'
configFile = file('v2-config.json')
dependsOn validation // ←追加
}
また、外部リポジトリからテンプレートを読み込めるようになりました。複数のプロジェクトで共通のテンプレートを利用したい場合に役に立ちます。
repositories {
// NexusやArtifactoryのリポジトリを指定
maven {
url 'https://example.com/nexus-or-artifactory'
}
jcenter()
}
dependencies {
swaggerCodegen 'io.swagger:swagger-codegen-cli:2.2.3'
// NexusやArtifactoryにpublishされたテンプレートを指定
swaggerTemplate 'com.example:swagger-templates:1.0.0'
}
swaggerSources {
petstore {
inputFile = file('petstore.yaml')
code {
language = 'spring'
// テンプレートJAR内のパスを指定
templateDir = file("${resolveSwaggerTemplate.destinationDir}/spring-mvc")
}
}
}
このように、大規模なプロジェクトでSwagger CodegenやSwagger UIを活用する場合に有用な機能を追加しています。
詳しくはREADMEやサンプルプロジェクトを参照してください。