eelseungmin

[Swagger, springdoc] HTTPS 적용 후 Swagger에서 API가 HTTP로 요청되는 경우

by eelseungmin

배경

현재 개발 중인 프로젝트에서는 springdoc 라이브러리를 통해 Swagger를 사용한다. 그런데 서버에 HTTPS를 적용한 후에도 Swagger에서는 HTTP로 API를 요청하는 불상사가 있었고, 구글링을 통해 문제를 해결했다.

참고로 프로젝트의 기술 스택으로는 스프링부트 3.2.0, Java 17, springdoc 2.3.0을 사용 중이다.

 

해결 방법

https://stackoverflow.com/questions/70843940/springdoc-openapi-ui-how-do-i-set-the-request-to-https

 

springdoc-openapi-ui How do I set the request to HTTPS

When I publish, I will use HTTPS requests instead of HTTP, but swagger original URL is still HTTP, I have no idea how to set it up, and there is no documentation for servers in the original springdoc-

stackoverflow.com

위 링크를 참조하면 된다. 방법은 너무 간단했다.

...
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.servers.Server;
...
@OpenAPIDefinition(servers = {@Server(url = "/", description = "Default Server URL")})

@SpringBootApplication
public class MyApplication {
...
}

@SpringBootApplication 위에 어노테이션을 추가하고 url을 "/"로 설정하면 실행 환경의 프로토콜과 호스트를 바탕으로 API를 요청할 수 있게 된다.

 

Swagger에서도 Request URL이 정상적으로 출력되는 것을 확인할 수 있다.

블로그의 정보

eel.log

eelseungmin

활동하기