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.Apiio.swagger.v3.oas.annotations.tags.Tag
io.swagger.annotations.ApiOperationio.swagger.v3.oas.annotations.Operation
io.swagger.annotations.ApiModelio.swagger.v3.oas.annotations.media.Schema
io.swagger.annotations.ApiResponseio.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"));
    }
}

注意点

  1. SpringDoc は @EnableSwagger2 などを 必要としません
  2. Swagger UI のデフォルトパスは /swagger-ui/index.html です。
  3. JSON パスは /v3/api-docs です。