springdoc swagger 사용하기

2023. 3. 9. 17:35스프링

gradle에 의존성을 추가해준다.

implementation 'org.springdoc:springdoc-openapi-ui:1.6.9'


fox보단 doc이 최신이라하여 springdoc로 진행하였다.

 

yml파일에 아래 항목을 추가해준다

기본 응답 요청 타입을 json으로 해줬다.

springdoc:
  default-consumes-media-type: application/json
  default-produces-media-type: application/json
  api-docs:
    groups:
      enabled: true
  swagger-ui:
    operations-sorter: alpha # alpha(알파벳 오름차순), method(HTTP메소드순)
    tags-sorter: alpha # 태그 정렬 기준
    path: /swagger-ui/index.html # html 문서 접속 경로
    disable-swagger-default-url: true
    display-query-params-without-oauth2: true
    doc-expansion: none # tag, operation 펼치는 방식
  paths-to-match:
    - /**

 

 

 

스웨거를 빈으로 등록해주고 그룹핑도 하고 version별로도 관리할 수 있다.

@Configuration
public class SwaggerConfig {
    @Bean
    public OpenAPI openAPI() {
        Info info = new Info()
                .version("v1.0")
                .title("일정관리 서비스 API")
                .description("일정관리 서비스 API");
        return new OpenAPI()
                .info(info);
    }
}

 

 

 

컨트롤러에서는 이렇게 사용하면 된다.

@Operation(operationId = "getUser", summary = "유저 목록 조회", description = "유저 목록 조회")
@ApiResponses(value = {
    @ApiResponse(responseCode = "200", description = "Successful Operation", content = @Content(array = @ArraySchema(schema = @Schema(implementation = KwareUserDTO.class)))),
})
@GetMapping("/boards")
@Parameters({
    @Parameter(name = "id", description = "유저 키", required = true)
})