[swagger] Failed to fetch. Possible Reasons: CORS, Network Failure, URL scheme must be "http" or "https" for CORS request
Curl 명령어 확인해보니 https가 아닌 http 로 요청이 갔음을 확인할 수 있었다.
실행하고 있는 서버는 HTTPS 인데 HTTP로 요청을 보내서 발생한 문제이다.
CORS에 대해 정리 잘 해두신 블로그 첨부)
Swagger 설정을 바꿔주면 된다
serverUrl을 active profile (local, prod 마다 다르게 설정하도록 하였다)
@Configuration
public class SwaggerConfig {
@Value("${swagger.url}")
private String serverUrl;
@Bean
public OpenAPI springOpenApi() {
return new OpenAPI()
.components(createComponents())
.addServersItem(createServer());
}
private Server createServer() {
return new Server().url(serverUrl);
}
}