バリデーションと例外処理
React 連携を想定する場合、入力不正時のレスポンス形式を揃えることが重要です。Spring Boot の Validation と `@ControllerAdvice` で実装できます。
入力バリデーション
public record CreateBookRequest(
@NotBlank(message = "title is required")
@Size(max = 120, message = "title must be <= 120")
String title
) {}
@PostMapping
public BookDto create(@Valid @RequestBody CreateBookRequest request) {
return service.create(request);
}
例外ハンドラ
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ErrorResponse handleValidation(MethodArgumentNotValidException ex) {
return ErrorResponse.of("VALIDATION_ERROR", "入力値が不正です");
}
}
共通エラー形式
{
"code": "VALIDATION_ERROR",
"message": "入力値が不正です",
"timestamp": "2026-02-15T12:00:00Z"
}
フロントエンド側では code を主キーにしてエラーメッセージを振り分けると、
文言変更が発生しても UI 側実装が壊れにくくなります。