Spring BootでのAPIの無視とエラー処理について


まず、APIを無視する方法ですが、Spring Bootでは@apiignoreアノテーションを使用することで、特定のAPIやAPIメソッドをドキュメント生成ツールから除外することができます。例えば、Swaggerを使用してAPIドキュメントを生成する場合、@apiignoreアノテーションをAPIメソッドに追加すると、そのメソッドはドキュメントに表示されなくなります。

次に、エラー処理についてです。Spring Bootでは、さまざまな方法でエラー処理を行うことができます。

  1. @ExceptionHandlerアノテーションを使用して、特定の例外に対するハンドラーメソッドを定義することができます。例外が発生した場合、このハンドラーメソッドが呼び出され、適切なエラーレスポンスを返すことができます。
@RestController
public class MyController {
    @ExceptionHandler(NotFoundException.class)
    @ResponseStatus(HttpStatus.NOT_FOUND)
    public ErrorResponse handleNotFoundException(NotFoundException ex) {
        return new ErrorResponse("Not found", ex.getMessage());
    }
// 他のハンドラーメソッドも定義可能
}
  1. @ControllerAdviceアノテーションを使用して、アプリケーション全体のエラーハンドリングを行う共通のクラスを作成することもできます。このクラスには、@ExceptionHandlerメソッドを追加して、さまざまな例外に対するエラーハンドリングを行います。
@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(NotFoundException.class)
    @ResponseStatus(HttpStatus.NOT_FOUND)
    public ErrorResponse handleNotFoundException(NotFoundException ex) {
        return new ErrorResponse("Not found", ex.getMessage());
    }
// 他のハンドラーメソッドも定義可能
}
  1. ResponseEntityExceptionHandlerを拡張するカスタムの例外ハンドラークラスを作成することもできます。このクラスでは、handleExceptionInternalメソッドをオーバーライドして、エラーレスポンスをカスタマイズすることができます。
@ControllerAdvice
public class CustomExceptionHandler extends ResponseEntityExceptionHandler {
    @ExceptionHandler(NotFoundException.class)
    public ResponseEntity<ErrorResponse> handleNotFoundException(NotFoundException ex) {
        ErrorResponse errorResponse = new ErrorResponse("Not found", ex.getMessage());
        return new ResponseEntity<>(errorResponse, HttpStatus.NOT_FOUND);
    }
// 他の例外ハンドラーメソッドも定義可能
}