API 만들어 보기/API 문서 자동화
스웨거 사용해보기 3: SwaggerConfig에 서버 설정
midcon
2024. 5. 3. 02:19
HTTPS에서 스웨거
보통 프로젝트를 진행하면서 서비스를 배포하고 도메인을 붙이고 HTTPS를 적용할 것이다.
하지만 스웨거의 기본 서버 URL은 http://localhost:8080 이므로
HTTPS를 적용할 때 스웨거에서 설정을 추가해주지 않으면 이 글처럼 CORS 에러를 만나는 수가 있다.
따라서 환경에 따라 스웨거 서버 설정을 변경해주어야 한다.
1. SwaggerConfig 설정 추가
SwaggerConfig
아래처럼 서버 설정을 추가하고 환경변수로 분리하여 환경에 맞게 관리한다.
@Configuration
@RequiredArgsConstructor
@SecurityScheme(
name = "jwt-cookie",
type = SecuritySchemeType.APIKEY,
in = SecuritySchemeIn.COOKIE
)
public class SwaggerConfig {
private final AppConfig appConfig;
@Bean
public OpenAPI serverApiConfig() {
Server server = new Server();
server.setUrl(appConfig.getBackUrl()); // 여기서 서버 URL 설정 가능 -> 환경 변수로 관리
server.description("백엔드 도메인");
return new OpenAPI()
.addServersItem(server)
.info(new Info().title("PAWLAND API")
.description("PAWLAND API SWAGGER UI입니다."));
}
}
2. 결과 확인
아래처럼 스웨거 서버 URL을 yml으로 관리하여 프로필에 따라 환경 변수를 다르게 할 수 있다.
1. 로컬에서 테스트 시 서버 URL - application-local.yml
2. 배포 시 서버 URL - application-prod.yml