SpringDoc OpenAPI
URL
springdoc:
api-docs:
enabled: true
path: /api-docs
swagger-ui:
enabled: true
path: /swagger-ui.htmlアノテーション
Swagger から SpringDoc OpenAPI への移行
| SpringFox 注釈 | SpringDoc 注釈 | 位置 | 説明 |
|---|---|---|---|
@Api(tags = "...") | @Tag(name = "...") | Controller クラス | API をグループ分けします |
@ApiOperation(value = "...") | @Operation(summary = "...") | Controller メソッド | API の概要 を記述 |
@ApiOperation(notes = "...") | @Operation(description = "...") | Controller メソッド | API の詳細 を記述 |
@ApiParam | @Parameter | メソッド引数 | 引数名 、必須 、例 など |
@ApiIgnore | @Hidden | クラス/メソッド | ドキュメントから隠 す |
@ApiModel | @Schema | モデルクラス | モデルの定義 |
@ApiModelProperty | @Schema | モデルフィールド | 属性 の意味 や例 |
@ApiResponse(code = 200) | @ApiResponse(responseCode = "200") | メソッド | レスポンスの意味 |
@RequestParam | @Parameter(in = QUERY) | メソッド引数 | クエリパラメータ |
@PathVariable | @Parameter(in = PATH) | メソッド引数 | パス変数 |
Import パスの対照
| SpringFox (旧 ) | SpringDoc (新 ) |
|---|---|
io.swagger.annotations.Api | io.swagger.v3.oas.annotations.tags.Tag |
io.swagger.annotations.ApiOperation | io.swagger.v3.oas.annotations.Operation |
io.swagger.annotations.ApiModel | io.swagger.v3.oas.annotations.media.Schema |
io.swagger.annotations.ApiResponse | io.swagger.v3.oas.annotations.responses.ApiResponse |
依存関係の変更
<!-- SpringFox を削除し、こちらを注入 -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.x.x</version>
</dependency>コードサンプル
- SpringDoc OpenAPI (新 しい方式 )
@Configuration
public class OpenAPIConfig {
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI()
.info(new Info()
.title("API ドキュメント")
.description("詳細説明")
.version("1.0.0"));
}
}注意点
- SpringDoc は
@EnableSwagger2などを 必要としません。 - Swagger UI のデフォルトパスは
/swagger-ui/index.htmlです。 - JSON パスは
/v3/api-docsです。