Skip to content

Commit

Permalink
fix: 환경 변수에 맞게 스웨거 서버 설정
Browse files Browse the repository at this point in the history
  • Loading branch information
LeeHanEum committed Feb 18, 2025
1 parent ba56991 commit 0677967
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 10 deletions.
43 changes: 35 additions & 8 deletions src/main/java/depromeet/onepiece/common/config/SwaggerConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,30 +9,57 @@
import io.swagger.v3.oas.models.security.SecurityScheme.In;
import io.swagger.v3.oas.models.security.SecurityScheme.Type;
import io.swagger.v3.oas.models.servers.Server;
import jakarta.annotation.PostConstruct;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;

@Configuration
@RequiredArgsConstructor
public class SwaggerConfig {
private static final String SERVER_NAME = "One-Piece"; // 프로젝트명
private static final String API_TITLE = "원피스 서버 API 문서";
private static final String API_DESCRIPTION = "원피스 서버 API 문서입니다.";
private static final String SERVER_NAME = "Critix-server"; // 프로젝트명
private static final String API_TITLE = "Critix 서버 API 문서";
private static final String API_DESCRIPTION = "Critix 서버 API 문서입니다.";
private static final String GITHUB_URL = "https://github.com/depromeet/16th-team1-BE";
private final Environment environment;

@Value("${server.address}")
private String serverAddress;

private final Map<String, String> PROFILE_SERVER_URL_MAP = new HashMap<>();

@PostConstruct
public void init() {
PROFILE_SERVER_URL_MAP.put("local", "http://localhost:8080");
PROFILE_SERVER_URL_MAP.put("dev", "http://" + serverAddress + ":8080");
}

@Bean
public OpenAPI openAPI() {
return new OpenAPI()
.servers(
List.of(
new Server().url("http://localhost:8080").description("로컬 서버"),
new Server().url("https://api.dev.onepiece.com").description("개발 서버"),
new Server().url("https://api.prod.onepiece.com").description("운영 서버")))
.servers(initializeServers())
.addSecurityItem(securityRequirement())
.components(authSetting())
.info(swaggerInfo());
}

private List<Server> initializeServers() {
return PROFILE_SERVER_URL_MAP.entrySet().stream()
.filter(entry -> environment.matchesProfiles(entry.getKey()))
.map(entry -> newOpenApiServer(entry.getValue(), SERVER_NAME + " " + entry.getKey()))
.collect(Collectors.toList());
}

private Server newOpenApiServer(String url, String description) {
return new Server().url(url).description(description);
}

private Components authSetting() {
return new Components()
.addSecuritySchemes(
Expand Down
5 changes: 4 additions & 1 deletion src/main/resources/application-dev.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
spring:
data:
mongodb:
uri: ${MONGODB_URL}
uri: ${MONGODB_URL}

server:
address: ${SERVER_ADDRESS}
5 changes: 4 additions & 1 deletion src/main/resources/application-local.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
spring:
data:
mongodb:
uri: mongodb://localhost/onepiece
uri: mongodb://localhost/onepiece

server:
address: ${SERVER_ADDRESS:localhost}

0 comments on commit 0677967

Please sign in to comment.