하이퍼파라미터 기능 추가

This commit is contained in:
2026-02-03 14:31:53 +09:00
parent e2757d3ca0
commit 3a8d6e3ef0
18 changed files with 946 additions and 688 deletions

View File

@@ -482,37 +482,40 @@ public class GlobalExceptionHandler {
@ExceptionHandler(CustomApiException.class)
public ApiResponseDto<String> handleCustomApiException(
CustomApiException e, HttpServletRequest request) {
log.warn("[CustomApiException] resource : {}", e.getMessage());
this.errorLog(request, e);
String codeName = e.getCodeName();
HttpStatus status = e.getStatus();
// String message = e.getMessage() == null ? ApiResponseCode.getMessage(codeName) :
// e.getMessage();
//
// ApiResponseCode apiCode = ApiResponseCode.getCode(codeName);
//
// ErrorLogEntity errorLog =
// saveErrorLogData(
// request, apiCode, status, ErrorLogDto.LogErrorLevel.WARNING, e.getStackTrace());
//
// ApiResponseDto<String> body =
// ApiResponseDto.createException(apiCode, message, status, errorLog.getId());
// enum에 없는 codeName이면 IllegalArgumentException 방지
ApiResponseDto.ApiResponseCode apiCode = null;
try {
apiCode = ApiResponseDto.ApiResponseCode.getCode(codeName);
} catch (Exception ignore) {
apiCode = null;
}
// 메시지 우선순위: 예외 message > enum message > fallback
String message;
if (e.getMessage() != null && !e.getMessage().isBlank()) {
message = e.getMessage();
} else if (apiCode != null) {
message = apiCode.getText(); // enum 기본 메시지
} else {
message = "서버에 문제가 발생 하였습니다."; // 최후 fallback
}
// 로그/응답 코드: enum 없으면 기본코드로
ApiResponseDto.ApiResponseCode safeCode =
(apiCode != null) ? apiCode : ApiResponseDto.ApiResponseCode.INTERNAL_SERVER_ERROR;
ErrorLogEntity errorLog =
saveErrorLogData(
request,
ApiResponseCode.getCode(codeName),
HttpStatus.valueOf(status.value()),
ErrorLogDto.LogErrorLevel.WARNING,
e.getStackTrace());
request, safeCode, status, ErrorLogDto.LogErrorLevel.WARNING, e.getStackTrace());
return ApiResponseDto.createException(
ApiResponseCode.getCode(codeName),
ApiResponseCode.getMessage(codeName),
HttpStatus.valueOf(status.value()),
errorLog.getId());
// return new ResponseEntity<>(body, status);
return ApiResponseDto.createException(safeCode, message, status, errorLog.getId());
}
private void errorLog(HttpServletRequest request, Throwable e) {

View File

@@ -189,7 +189,12 @@ public class ApiResponseDto<T> {
}
public static ApiResponseCode getCode(String name) {
return ApiResponseCode.valueOf(name.toUpperCase());
if (name == null || name.isBlank()) return null;
try {
return ApiResponseCode.valueOf(name.toUpperCase());
} catch (IllegalArgumentException ex) {
return null;
}
}
public static String getMessage(String name) {