아래 파일을 추가한다.
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로 되어 있어서 도메인주소까지만 했다.