From 14ade58191e8d417f2c60546ad668b9cde28e04f Mon Sep 17 00:00:00 2001 From: chanwoo7 Date: Thu, 19 Sep 2024 00:07:24 +0900 Subject: [PATCH] =?UTF-8?q?[chore]=20#151=20OPEN=20API=20=EC=9D=91?= =?UTF-8?q?=EB=8B=B5=20=ED=8C=8C=EC=8B=B1=EC=9D=B4=20=EB=B6=88=EA=B0=80?= =?UTF-8?q?=ED=95=9C=20=EA=B2=BD=EC=9A=B0=EC=97=90=20=EB=8C=80=ED=95=9C=20?= =?UTF-8?q?=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/book/backend/domain/openapi/service/OpenAPI.java | 8 +++++++- src/main/java/com/book/backend/exception/ErrorCode.java | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/book/backend/domain/openapi/service/OpenAPI.java b/src/main/java/com/book/backend/domain/openapi/service/OpenAPI.java index 502f3c9..3c73756 100644 --- a/src/main/java/com/book/backend/domain/openapi/service/OpenAPI.java +++ b/src/main/java/com/book/backend/domain/openapi/service/OpenAPI.java @@ -89,9 +89,15 @@ private URL setRequest(String subUrl, OpenAPIRequestInterface dto) throws Except private JSONObject readStreamToJson(InputStreamReader streamResponse, OpenAPIResponseInterface responseDto) throws Exception { log.trace("OpenAPI > readStreamToJson()"); String fullResponse = new BufferedReader(streamResponse).readLine(); + JSONObject jsonObject; // response JSON 파싱 - JSONObject jsonObject = (JSONObject) (new JSONParser()).parse(fullResponse); + try { + jsonObject = (JSONObject) (new JSONParser()).parse(fullResponse); + } catch (Exception e) { + throw new CustomException(ErrorCode.INVALID_OPENAPI_RESPONSE); + } + JSONObject response = (JSONObject) jsonObject.get("response"); // API 일일 호출 횟수 초과 에러 (일 최대 500건) diff --git a/src/main/java/com/book/backend/exception/ErrorCode.java b/src/main/java/com/book/backend/exception/ErrorCode.java index 0c7cefe..7b40991 100644 --- a/src/main/java/com/book/backend/exception/ErrorCode.java +++ b/src/main/java/com/book/backend/exception/ErrorCode.java @@ -55,6 +55,7 @@ public enum ErrorCode { // 외부 API 에러 KAKAO_SERVER_ERROR(HttpStatus.INTERNAL_SERVER_ERROR, "500", "카카오 서버에 오류가 발생했습니다."), + INVALID_OPENAPI_RESPONSE(HttpStatus.INTERNAL_SERVER_ERROR, "500", "OPEN API 서버에서 잘못된 응답을 전송했습니다."), API_CALL_LIMIT_EXCEEDED(HttpStatus.TOO_MANY_REQUESTS, "429", "OPEN API 일일 호출 횟수를 초과했습니다. (일 최대 500건)"), LIBCODE_ERROR(HttpStatus.INTERNAL_SERVER_ERROR, "500", "존재하는 도서관 코드인지 확인해주세요."), OPENAPI_REQUEST_TIMEOUT(HttpStatus.REQUEST_TIMEOUT, "408", "OPEN API 응답을 요청하는 중 타임아웃이 발생했습니다."),