스프링부트 스웨거3
2024. 5. 1. 16:40ㆍ스프링부트
스웨거3 어노테이션
springdoc openAPI3 Swagger 공식문서
springdoc openAPI3 Swagger
ApiResponse 커스텀하기 1
ApiResponse 커스텀하기 2
@ApiResponse(
responseCode = "200",
description = "이미 회원가입을 했던 유저인 경우",
content = @Content(
schema = @Schema(implementation = ErrorResponseDTO.class))
스웨거에서는 각 메서드에 어노테이션을 읽어 api 명세서를 구성한다.
하지만 위의 방법대로 api의 반환 타입을 설정하면 ErrorResponseDTO에 설정한 어노테이션에 따른 한가지 예시밖에 안나온다.
따라서 여러 컨트롤러에 대한 모든 예제를 넣으려면 다른 방식으로 이를 설정하여야한다.
동작과정
1. error Enum을 정의함.
2. 커스텀 어노테이션으로 런타임 시점에 어떠한 errorEnum 인지 정보를 받음.
3. public OperationCustomizer customize()을 통해 각 메소드에 어노테이션 정보를 필터링함. (우리가 미리 정의한 커스텀 어노테이션 확인하기)
4. errorEnum 데이터를 보고 ExampleHolder List를 구성함.
5. ExampleHolder List로 mediaType 객체를 구성하고 content에 mediaType을 설정함. ApiResponse에 content로 추가함.
참고 *
customize()에서 반환하는 operation에서 .getResponse()로 ApiResponses 객체를 얻을 수 있는데 여기에 ApiResponse객체를 추가하면 예제가 추가됨.
커스텀하기 위한 지식. 어노테이션과 리플랙션
'스프링부트' 카테고리의 다른 글
스프링 intellij 디버깅 (0) | 2024.05.14 |
---|---|
스프링 Process 617 is still running (0) | 2024.05.14 |
스프링 실습 공부 계획 (0) | 2024.04.24 |
스프링 컨트롤러 객체 매핑 (0) | 2024.03.19 |
스프링 동작원리2 (0) | 2024.03.15 |