From 38227bbb525a6d047fe3d8efb701fe1f5f94c19f Mon Sep 17 00:00:00 2001 From: dongkyeomjang Date: Sat, 23 Nov 2024 03:38:28 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20BugFix/#87=20-=20OCRUtil?= =?UTF-8?q?=EC=9D=98=20ObjectMapper=EC=97=90=20FAIL=5FON=5FUNKNOWN=5FPROPE?= =?UTF-8?q?RTIES=EC=9D=B8=20=EA=B2=BD=EC=9A=B0=20=EC=97=90=EB=9F=AC?= =?UTF-8?q?=EA=B0=80=20=EB=B0=9C=EC=83=9D=ED=95=98=EB=8A=94=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- http/auth/AuthControllerHttpRequest.http | 13 +++++++++++++ http/onjung/OnjungControllerHttpRequest.http | 2 +- .../com/daon/onjung/core/dto/ReceiptOCRDto.java | 2 ++ .../java/com/daon/onjung/core/utility/OCRUtil.java | 11 ++++++++++- 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/http/auth/AuthControllerHttpRequest.http b/http/auth/AuthControllerHttpRequest.http index 6ef7811..1fb68cf 100644 --- a/http/auth/AuthControllerHttpRequest.http +++ b/http/auth/AuthControllerHttpRequest.http @@ -11,6 +11,19 @@ password={{auth.API_LOGIN_SUPER_USER.password}} client.global.set("refresh_token", response.body.data.refresh_token); %} +### 테스트용 더미5 로그인 +// @no-log +POST {{host_url}}/api/v1/auth/login +Content-Type: application/x-www-form-urlencoded + +serial_id={{auth.API_LOGIN_DUMMY5.serial_id}}& +password={{auth.API_LOGIN_DUMMY5.password}} + +> {% + client.global.set("access_token", response.body.data.access_token); + client.global.set("refresh_token", response.body.data.refresh_token); +%} + ### 1.1 사용자 로그인 (Kakao Oauth) // @no-log POST {{host_url}}/api/v1/oauth/login diff --git a/http/onjung/OnjungControllerHttpRequest.http b/http/onjung/OnjungControllerHttpRequest.http index cb29dd9..cc48770 100644 --- a/http/onjung/OnjungControllerHttpRequest.http +++ b/http/onjung/OnjungControllerHttpRequest.http @@ -23,7 +23,7 @@ Content-Type: multipart/form-data; boundary=boundary Content-Disposition: form-data; name="file"; filename="receipt.jpg" Content-Type: image/jpeg -< /Users/kyeom/Desktop/receipt3.jpeg +< /Users/kyeom/Desktop/receipt.jpeg ### 4.5 영수증 리뷰 등록하기 // @no-log diff --git a/src/main/java/com/daon/onjung/core/dto/ReceiptOCRDto.java b/src/main/java/com/daon/onjung/core/dto/ReceiptOCRDto.java index 32c95e9..e0a265a 100644 --- a/src/main/java/com/daon/onjung/core/dto/ReceiptOCRDto.java +++ b/src/main/java/com/daon/onjung/core/dto/ReceiptOCRDto.java @@ -1,8 +1,10 @@ package com.daon.onjung.core.dto; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; +@JsonIgnoreProperties(ignoreUnknown = true) public record ReceiptOCRDto( @JsonProperty("version") diff --git a/src/main/java/com/daon/onjung/core/utility/OCRUtil.java b/src/main/java/com/daon/onjung/core/utility/OCRUtil.java index 7dd0930..945e7e9 100644 --- a/src/main/java/com/daon/onjung/core/utility/OCRUtil.java +++ b/src/main/java/com/daon/onjung/core/utility/OCRUtil.java @@ -1,6 +1,7 @@ package com.daon.onjung.core.utility; import com.daon.onjung.core.dto.ReceiptOCRDto; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import net.minidev.json.JSONObject; import org.springframework.beans.factory.annotation.Value; @@ -28,7 +29,15 @@ public class OCRUtil { @Value("${naver-cloud.ocr.key}") private String ocrKey; - private final ObjectMapper objectMapper = new ObjectMapper(); + private ObjectMapper objectMapper = new ObjectMapper(); + + public OCRUtil() { + this.objectMapper = new ObjectMapper(); + + // 추가 필드를 무시하고 DTO에 정의된 필드만 매핑 + this.objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + } + public String createOCRRequestUrl() { return UriComponentsBuilder.fromHttpUrl(ocrUrl)