Spring boot에 Swagger 적용하기
2024. 2. 23. 01:12ㆍ백엔드/Spring Boot
이번 게시글에서는 SpringDoc과 Swaager를 이용하여 API 문서를 생성하는 방법에 대하여 알아보려고 합니다.
저는 Spring security가 적용되어있는 환경을 기준으로 적용하였습니다.
# build.gradle 의존성 추가하기
dependencies {
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0'
}
# Open API Bean으로 등록하기
@Configuration
public class SwaggerConfig {
@Bean
public OpenAPI api() {
OpenAPI openAPI = new OpenAPI()
// 보안 관련
.addSecurityItem(new SecurityRequirement().addList("Bearer Authentication"))
.components(new Components().addSecuritySchemes("Bearer Authentication", createAPIKeyScheme()))
.info(apiInfo());
return openAPI;
}
private Info apiInfo() {
Info info = new Info()
.title("API TITLE")
.description("DESCRIPTION")
.version("0.0.1");
return info;
}
private SecurityScheme createAPIKeyScheme() {
return new SecurityScheme().type(SecurityScheme.Type.HTTP) // 스키마 유형 HTTP
.bearerFormat("JWT") // 토큰 형식
.scheme("bearer"); // 스키마 이름
}
}
# Spring Security를 적용한 경우 페이지 접근을 위한 인증 여부 관련 설정 추가하기
@Bean
public SecurityFilterChain filterChain(HttpSecurity security) throws Exception {
security.
// 인증 필수 관련 페이지 설정
.authorizeHttpRequests(
requests -> requests
// swagger 경로는 인증을 요구하지 않음
.requestMatchers("/v3/**", "/swagger-ui/**").permitAll()
.anyRequest().authenticated()
);
return security.build();
}
# 컨트롤러에 swagger 관련 코드 추가하기
// 컨트롤러에 대한 설명
@Tag(name = "", description = "")
public class DomainController {
// 메서드에 대한 설명
@Operation(summary = "제목", description = "설명")
public void test() {
}
}
# Swagger 접속하기
🔎 Swagger 접속 후 문서작동 여부 확인
Ex. 로컬에서 실행한 경우 : http://localhost:8080/swagger-ui/index.html#/
'백엔드 > Spring Boot' 카테고리의 다른 글
Java 애플리케이션 SIGSEGV (Segmentation Fault) 오류 해결하기 (1) | 2025.02.23 |
---|---|
Spring boot API 프로젝트에 FCM 적용하기 (0) | 2025.02.15 |
Spring 그리고 Spring Boot (1) | 2024.01.30 |
Spring boot Exception Handling (1) | 2024.01.17 |
Spring Validation(유효성 검사)에 대하여 알아보기 (0) | 2024.01.15 |