diff --git a/src/main/java/go/kr/project/api/config/properties/VmisProperties.java b/src/main/java/go/kr/project/api/config/properties/VmisProperties.java index 47c2cd1..f965726 100644 --- a/src/main/java/go/kr/project/api/config/properties/VmisProperties.java +++ b/src/main/java/go/kr/project/api/config/properties/VmisProperties.java @@ -28,27 +28,61 @@ public class VmisProperties { public static class ApiProps { @NotNull private UrlProps url = new UrlProps(); - // 구/신 API 선택 플래그 (YML flag) - private boolean useOldBasic = false; // true = /old-basic, false = /new-basic - private boolean useNewLedger = true; // 현재는 신규 원부만 사용 @Data public static class UrlProps { @NotBlank private String base = "http://localhost:8081/api/v1/vehicles"; // 기본 Base URL - // 구/신 API 엔드포인트 경로 (신규 요구사항 반영) - @NotBlank - private String oldBasic = "/old-basic"; // 구 자동차기본정보 - @NotBlank - private String newBasic = "/new-basic"; // 신 자동차기본정보 - @NotBlank - private String newLedger = "/new-ledger"; // 신 자동차등록원부(갑) + + @NotNull + private ApiTypeProps basic = new ApiTypeProps(); // 자동차기본정보 API 설정 + + @NotNull + private ApiTypeProps ledger = new ApiTypeProps(); // 자동차등록원부(갑) API 설정 + + @Data + public static class ApiTypeProps { + @NotBlank + private String oldOrNew = "new"; // API 버전 선택 ("old" 또는 "new") + + @NotBlank + private String oldUrl = "/old-basic"; // 구 API 엔드포인트 + + @NotBlank + private String newUrl = "/new-basic"; // 신 API 엔드포인트 + + // 선택된 API URL 반환 + public String getSelectedUrl() { + return "old".equalsIgnoreCase(oldOrNew) ? oldUrl : newUrl; + } + } // 외부 VMIS-interface 호출용 전체 URL 조합 헬퍼 - // 구/신 URL 조합 헬퍼 - public String buildOldBasicUrl() { return join(base, oldBasic); } - public String buildNewBasicUrl() { return join(base, newBasic); } - public String buildNewLedgerUrl() { return join(base, newLedger); } + // YAML 설정(old-or-new)에 따라 자동으로 선택 + public String buildBasicUrl() { + return join(base, basic.getSelectedUrl()); + } + + public String buildLedgerUrl() { + return join(base, ledger.getSelectedUrl()); + } + + // 명시적으로 old/new 버전 선택 (하위 호환성 및 명시적 호출용) + public String buildOldBasicUrl() { + return join(base, basic.getOldUrl()); + } + + public String buildNewBasicUrl() { + return join(base, basic.getNewUrl()); + } + + public String buildOldLedgerUrl() { + return join(base, ledger.getOldUrl()); + } + + public String buildNewLedgerUrl() { + return join(base, ledger.getNewUrl()); + } private String join(String base, String path) { String b = base;