미소를뿌리는감자의 코딩

[Fight Club] Global Handler 설정 - Swagger 본문

카테고리 없음

[Fight Club] Global Handler 설정 - Swagger

미뿌감 2024. 12. 21. 21:16
728x90

0. 개요

이전 작성 글을 이어서, 이번에는 swagger를 handle 하는 코드를 작성해 보도록 할 것이다.

 

2. swagger

 

https://velog.io/@gmlstjq123/SpringBoot-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%97%90-Swagger-UI-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0

 

SpringBoot 프로젝트에 Swagger UI 적용하기

Swagger UI는 프론트엔드와 백엔드의 협업에 사용되는 툴입니다. Swagger UI를 사용하면, API를 시각화하는 코드가 자동으로 생성되기 때문에 보다 간편하게 API를 테스트해 볼 수 있게 됩니다. 또한, AP

velog.io

 

이 분의 블로그를 보면서 참고했다.

 

중간에 ,

 

이렇게 뜨면서 swagger가 작동이 안했었다.

swagger dependency 문제인 줄 알고 swagger version을 계속 바꾸어 주었는데도 안되었다.

이에, spring boot version을 조금 낮춰주니까 정상적으로 작동하였다.

 

위 블로그 글을 참고하며, swaggerconfig와 TestControllerDocs를 작성해 주었다.

 

TestControllerDocs는 따로 작성하고, controller에 implements하는 식으로 작성하여 실제 controller code와 분리해 주었다.

@Tag(name = "Test", description = "APIs for test")
public interface TestControllerDocs {

    @Operation(summary = "IO Error Response checker", description = "ServiceException Handler 작동 확인을 위한 API" )
    @ApiResponses ({
            @ApiResponse(responseCode = "400",
                         description = "status, message, code가 출력 된다면 정상",
                         content = @Content(schema = @Schema(implementation = ErrorResponseDto.class)))
    })
    @Parameters({
            @Parameter(name = "test",
                       description = "actually this api does not have parameters",
                       example = "i just wanted to show you an example")
    })
    public String healthCheck();
}

 

@RestController
@RequestMapping("/health")
@Slf4j
public class TestController implements TestControllerDocs

이렇게 TestControllerDocs를 implements 해주었다.

728x90