From 0efc6eb361faab4f9ca8eb078d03ed6a17afc34f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=84=B1=EC=98=81?= Date: Fri, 21 Nov 2025 10:46:23 +0900 Subject: [PATCH] =?UTF-8?q?=EC=95=BC=EB=AC=BC=ED=8C=8C=EC=9D=BC=EC=97=90?= =?UTF-8?q?=20=EB=A7=9E=EC=B6=B0=20=ED=94=84=EB=A1=9C=ED=8D=BC=ED=8B=B0=20?= =?UTF-8?q?=EA=B5=AC=EC=A1=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/config/properties/VmisProperties.java | 62 ++++++++++++++----- 1 file changed, 48 insertions(+), 14 deletions(-) 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;