본문 바로가기
카테고리 없음

[Swagger-v3] Springboot swagger v3 사용 시 https 주소로 요청이 가지 않을때

아래 파일을 추가한다.

 

 

package com.teosprint.flashcard.config.swagger;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.servers.Server;
import org.springframework.boot.autoconfigure.rsocket.RSocketProperties;
import org.springframework.stereotype.Component;
import springfox.documentation.oas.web.OpenApiTransformationContext;
import springfox.documentation.oas.web.WebMvcOpenApiTransformationFilter;
import springfox.documentation.spi.DocumentationType;

import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;

@Component
public class Workaround implements WebMvcOpenApiTransformationFilter {

    @Override
    public OpenAPI transform(OpenApiTransformationContext<HttpServletRequest> context) {
        OpenAPI openApi = context.getSpecification();
        Server localServer = new Server();
        localServer.setDescription("local");
        localServer.setUrl("http://localhost:9103");

        Server doaminServer = new Server();
        domainServer.setDescription("설명");
        domainServer.setUrl("https://도메인주소");
        openApi.setServers(Arrays.asList(domainServer, localServer));
        return openApi;
    }

    @Override
    public boolean supports(DocumentationType documentationType) {
        return documentationType.equals(DocumentationType.OAS_30);
    }
}

Server 정보를 Swagger에 추가해주는 방법

import io.swagger.v3.oas.models.servers.Server;

import Server를 해주고

Server 객체를 생성  후

setUrl로 요청할 서버 url로 바꿔주면 된다.

setUrl에는 주소를 입력하고 때에 따라서 도메인주소/A/B/C 와같이 설정해도 된다.

내 경우엔 localhost:9103 을 도메인주소/abc로 했고 context-path가 abc로 되어 있어서 도메인주소까지만 했다.

 

 

참고 글 : https://velog.io/@yulhee741/Swagger-servers-url-%EC%B6%94%EA%B0%80%ED%95%98%EA%B8%B0-https-%EC%B6%94%EA%B0%80