OpenAPI - 안쓰는 API 숨김처리하기

연어는결국강으로·2024년 2월 28일
0

Swagger

목록 보기
1/1

스웨거를 사용중인데 위 그림처럼 아직 개발이 덜 되었거나 스웨거에서 기본적으로 만들어놓은 api들도 모두 제공하여 api 명세를 보는 사람들이 매우 피곤해할것 같았다.

그래서 안쓰는 컨트롤러의 api를 숨기는 방법, 이번에 내가 사용하지는 않았지만 추가적으로 메서드단위로 숨기는 방법, 그리고 open-api에서 자동으로 만드는 명세를 숨기는 방법을 알아보았다.

OpenAPI를 쓰다보면 기존 스웨거랑 다른 api들이 많아서 알아보는데 시간이 좀 걸리는 듯 하다.


1. 컨트롤러 단위

@Hidden
@Tag(name = "서버 상태 확인 API")
@RestController
public class HealthCheckController {
	... 내부 코드들 ...
}

위와 같이 @Hidden 어노테이션을 추가하면 된다.

2. 메서드 단위

아래와 같이 @Operation 어노테이션에 있는 hidden 파라메터를 이용하면 된다.

@Operation(hidden = true)
@GetMapping
public ResponseEntity<?> myDeprecatedMethod() {
	... 내부 코드 ...
}

3. 스웨거에서 자체적으로 제공하는 api 숨김처리

    @Bean
    public GroupedOpenApi publicApi() {
        return GroupedOpenApi.builder()
                .group("public-apis")
                .packagesToScan("com.your.package")
                .build();
    }

위처럼 GroupedOpenApi 를 bean으로 등록한다. 그리고 추가하고자 하는 api가 있는 패키지를 packageToScan 메서드에 등록한다.

0개의 댓글