diff --git a/src/main/java/com/alist/api/common/response/ApiResponseCode.java b/src/main/java/com/alist/api/common/response/ApiResponseCode.java index 71da6ef..44bec1f 100644 --- a/src/main/java/com/alist/api/common/response/ApiResponseCode.java +++ b/src/main/java/com/alist/api/common/response/ApiResponseCode.java @@ -7,6 +7,7 @@ import java.text.MessageFormat; public enum ApiResponseCode { // ===== Common ===== CODE_200 ("200", "성공", HttpStatus.OK), + CODE_204 ("204", "컨텐츠 없음", HttpStatus.NO_CONTENT), CODE_400 ("400", "잘못된 요청", HttpStatus.BAD_REQUEST), CODE_401 ("401", "인증 필요 합니다.", HttpStatus.UNAUTHORIZED), diff --git a/src/main/java/com/alist/api/config/exception/GlobalExceptionHandler.java b/src/main/java/com/alist/api/config/exception/GlobalExceptionHandler.java index e3f6cc6..7340656 100644 --- a/src/main/java/com/alist/api/config/exception/GlobalExceptionHandler.java +++ b/src/main/java/com/alist/api/config/exception/GlobalExceptionHandler.java @@ -14,6 +14,7 @@ import org.springframework.web.bind.MissingServletRequestParameterException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException; +import org.springframework.web.servlet.resource.NoResourceFoundException; import java.util.LinkedHashMap; import java.util.Map; @@ -102,4 +103,17 @@ public class GlobalExceptionHandler { return ApiResponse.entity(ApiResponseCode.CODE_500); } + + @ExceptionHandler(NoResourceFoundException.class) + public ResponseEntity> handleNoResourceFound(NoResourceFoundException e) { + String resourcePath = e.getResourcePath(); + + if ("favicon.ico".equals(resourcePath) || "/favicon.ico".equals(resourcePath)) { + return ApiResponse.entity(ApiResponseCode.CODE_204); + } + + log.error("Unhandled exception occurred", e); + + return ApiResponse.entity(ApiResponseCode.CODE_404); + } }