SpringBootでレスポンス形式を統一する方法は何ですか?

Spring Bootでは、カスタムのグローバル例外処理ハンドラーとレスポンスラッパークラスを使用して、統一された応答形式を実現することができます。

  1. @ControllerAdviceは、アプリケーション全体の例外処理を統一的に管理するためのアノテーションです。
  2. @例外処理

サンプルコードは以下の通りです:

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    @ResponseBody
    public Result handleException(Exception e) {
        // 处理异常逻辑,可以根据不同的异常类型返回不同的错误码和错误信息
        return Result.error(500, e.getMessage());
    }
}
  1. 結果のラッパークラス:結果の形式をラップするためのクラスを作成し、ステータスコードやメッセージ内容などの情報を含めます。

以下はサンプルコードです。

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()メソッドを使用して成功したレスポンス結果を返すことができ、その際にはデータパラメーターを指定します。これにより、統一された応答形式を実現することができます。

bannerAds