まず、APIを無視する方法ですが、Spring Bootでは@apiignore
アノテーションを使用することで、特定のAPIやAPIメソッドをドキュメント生成ツールから除外することができます。例えば、Swaggerを使用してAPIドキュメントを生成する場合、@apiignore
アノテーションをAPIメソッドに追加すると、そのメソッドはドキュメントに表示されなくなります。
次に、エラー処理についてです。Spring Bootでは、さまざまな方法でエラー処理を行うことができます。
@ExceptionHandler
アノテーションを使用して、特定の例外に対するハンドラーメソッドを定義することができます。例外が発生した場合、このハンドラーメソッドが呼び出され、適切なエラーレスポンスを返すことができます。
@RestController
public class MyController {
@ExceptionHandler(NotFoundException.class)
@ResponseStatus(HttpStatus.NOT_FOUND)
public ErrorResponse handleNotFoundException(NotFoundException ex) {
return new ErrorResponse("Not found", ex.getMessage());
}
// 他のハンドラーメソッドも定義可能
}
@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());
}
// 他のハンドラーメソッドも定義可能
}
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);
}
// 他の例外ハンドラーメソッドも定義可能
}