SpringBootでレスポンス形式を統一する方法は何ですか?
Spring Bootでは、カスタムのグローバル例外処理ハンドラーとレスポンスラッパークラスを使用して、統一された応答形式を実現することができます。
- @ControllerAdviceは、アプリケーション全体の例外処理を統一的に管理するためのアノテーションです。
- @例外処理
サンプルコードは以下の通りです:
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
@ResponseBody
public Result handleException(Exception e) {
// 处理异常逻辑,可以根据不同的异常类型返回不同的错误码和错误信息
return Result.error(500, e.getMessage());
}
}
- 結果のラッパークラス:結果の形式をラップするためのクラスを作成し、ステータスコードやメッセージ内容などの情報を含めます。
以下はサンプルコードです。
public class Result<T> {
private int code;
private String message;
private T data;
// getter和setter方法
public static <T> Result<T> success(T data) {
Result<T> result = new Result<>();
result.setCode(200);
result.setMessage("操作成功");
result.setData(data);
return result;
}
public static <T> Result<T> error(int code, String message) {
Result<T> result = new Result<>();
result.setCode(code);
result.setMessage(message);
return result;
}
}
配置が完了すると、異常が発生した場合、グローバル例外ハンドラーが例外を処理し、カスタムのエラーコードとエラーメッセージを返します。通常の場合は、Result.success()メソッドを使用して成功したレスポンス結果を返すことができ、その際にはデータパラメーターを指定します。これにより、統一された応答形式を実現することができます。