인증 필요 여부 표기
엔드 포인트 중에는 인증이 필요한 기능이 있고, 필요 없는 기능이 있다.
API 사용자 입장에서는 직접 사용해서 깨닫기 보다는 사용 전에 이 두가지를 구분해주면 사용하기 더 편리할 것이다.
구현하기
구현 순서는 아래와 같다.
- SwaggerConfig 추가 설정
- 컨트롤러에 스웨거 UI용 설정 추가
- 결과 확인
1. SwaggerConfig 추가 설정
아래처럼 SwaggerConfig에 @SecurityScheme 애노테이션을 이용하여 인증 수단을 등록할 수 있다.
본인은 JWT를 쿠키에 넣어서 인증하는 방식을 사용했다.
만약 Authorization 헤더를 사용한다면 알맞게 수정하면 된다.
SwaggerConfig
@Configuration
@RequiredArgsConstructor
@SecurityScheme(
name = "jwt-cookie",
type = SecuritySchemeType.APIKEY,
in = SecuritySchemeIn.COOKIE
)
public class SwaggerConfig {
2. 컨트롤러에 스웨거 UI 표기용 설정 추가
UserController
@RestController
@RequestMapping("/api/user")
@RequiredArgsConstructor
@SecurityRequirement(name = "jwt-cookie")
@Tag(name = "UserController", description = "유저 정보 관련 컨트롤러 입니다.")
public class UserController {
ㄴ@SecurityRequirement
해당 애노테이션 추가 시 인증이 필요하다는 자물쇠 모양이 생긴다.
name 값에는 SwaggerConfig 에서 @SecurityScheme 을 이용하여 등록한 인증 수단 이름을 넣어준다.
각각 메서드에도 붙일 수 있지만 클래스에 붙이면 모든 엔드포인트가 인증이 필요함을 표시할 수 있다.
3. 결과 확인
아래 사진처럼 인증이 필요한 컨트롤러에는 자물쇠 모양으로 구분할 수 있게 되었다.
'API 만들어 보기 > API 문서 자동화' 카테고리의 다른 글
API 문서 자동화 2: Spring Rest Docs + Swagger 구현하기 (0) | 2024.06.12 |
---|---|
API 문서 자동화 1: Spring Rest Docs vs Swagger 장단점 비교 (0) | 2024.06.11 |
스웨거 사용해보기 4: API 인증 필요 여부 개별 관리 (0) | 2024.05.15 |
스웨거 사용해보기 3: SwaggerConfig에 서버 설정 (0) | 2024.05.03 |
스웨거 사용해보기 1: 기본 설정 (0) | 2024.05.01 |