1. 개요

Swagger 문서를 작성하는 동안 엔드 포인트가 최종 사용자에게 노출되지 않도록 숨겨야하는 경우가 많습니다. 이를 수행하는 가장 일반적인 시나리오는 엔드 포인트가 아직 준비되지 않은 경우입니다. 또한 노출하고 싶지 않은 개인용 엔드 포인트도있을 수 있습니다.

이 짧은 기사에서는 Swagger API 문서 에서 엔드 포인트를 숨기는 방법을 살펴 보겠습니다. . 이를 위해 컨트롤러 클래스에서 어노테이션을 사용할 것입니다.

2. @ApiIgnore 로 엔드 포인트 숨기기

@ApiIgnore의 어노테이션 우리가 엔드 포인트를 숨길 수 있습니다 . 컨트롤러의 엔드 포인트에 대해이 어노테이션을 추가해 보겠습니다.

@ApiIgnore
@ApiOperation(value = "This method is used to get the author name.")
@GetMapping("/getAuthor")
public String getAuthor() {
    return "Umang Budhwar";
}

3. @ApiOperation 으로 엔드 포인트 숨기기

또는 @ApiOperation 사용 하여 단일 엔드 포인트를 숨길 수 있습니다 .

@ApiOperation(value = "This method is used to get the current date.", hidden = true)
@GetMapping("/getDate")
public LocalDate getDate() {
    return LocalDate.now();
}

공지 사항 것을 우리가 설정해야  숨겨진 에 속성을  진정한 자신감이 엔드 포인트를 무시하도록 할 수 있습니다.

4. @ApiIgnore로 모든 엔드 포인트 숨기기

그럼에도 불구하고 때때로 우리 는 컨트롤러 클래스의 모든 끝점숨길 필요가 있습니다. @ApiIgnore로 컨트롤러 클래스에 어노테이션을 달면 이를 달성 할 수 있습니다 .

@ApiIgnore
@RestController
public class RegularRestController {
    // regular code
}

경우 문서에서 컨트롤러 자체가 숨겨집니다.

6. @Hidden 으로 엔드 포인트 숨기기

우리가 사용하는 경우 OpenAPI를 v3의를 , 우리는 사용하여 엔드 포인트를 숨길 수 있습니다 @Hidden 어노테이션 :

@Hidden
@GetMapping("/getAuthor")
public String getAuthor() {
    return "Umang Budhwar";
}

7. @Hidden으로 모든 엔드 포인트 숨기기

마찬가지로 컨트롤러에 @Hidden 어노테이션을 추가하여 모든 엔드 포인트를 숨길 수 있습니다 .

@Hidden
@RestController
public class RegularRestController {
    // regular code
}

이것은 또한 문서에서 컨트롤러를 숨 깁니다.

참고 : OpenAPI를 사용할 때만 @Hidden을 사용할 수 있습니다 . Swagger v3에서이 어노테이션에 대한 지원은 아직 진행 중입니다.

8. 결론

이 자습서에서는 Swagger 설명서에서 끝점을 숨기는 방법을 살펴 보았습니다. 단일 엔드 포인트와 컨트롤러 클래스의 모든 엔드 포인트를 숨기는 방법에 대해 논의했습니다.

항상 그렇듯이 Swagger 예제의 전체 코드는 GitHub 에서 사용할 수 있으며 OpenAPI v3 예제는 GitHub 에서도 사용할 수 있습니다.