java springboot 统一返回结果封装

 返回结果ResponseResult类封装

public class ResponseResult {

	/**
	 * 状态
	 */
	private int code;
	/**
     * 返回是否成功
     */
    private Boolean success;
	/**
	 * 消息
	 */
	private String message;
	/**
	 * 数据对象
	 */
	private Object data;

	public ResponseResult(TypeUtils responseStatusEnum) {
		this.code = responseStatusEnum.getCode();
		this.message = responseStatusEnum.getMessage();
	}

	/**
	 * 成功返回
	 */
	public static ResponseResult SUCCESS() {
		ResponseResult responseResult = new ResponseResult(TypeUtils.SUCCESS);
		responseResult.setSuccess(true);
		return responseResult;
	}

	/**
	 * 成功返回,带消息说明
	 * @param message 消息
	 */
	public static ResponseResult SUCCESS(String message) {
		ResponseResult responseResult = new ResponseResult(TypeUtils.SUCCESS);
		responseResult.setMessage(message);
		responseResult.setSuccess(true);
		return responseResult;
	}

	/**
	 * 失败返回
	 */
	public static ResponseResult FAILED() {
		ResponseResult responseResult = new ResponseResult(TypeUtils.FAILED);
		responseResult.setSuccess(false);
		return responseResult;
	}

	/**
	 * 失败返回,带消息说明
	 * @param message 消息
	 */
	public static ResponseResult FAILED(String message) {
		ResponseResult responseResult = new ResponseResult(TypeUtils.FAILED);
		responseResult.setMessage(message);
		responseResult.setSuccess(false);
		return responseResult;
	}
	
	/**
	 * 服务器内部出错
	 */
	public static ResponseResult SERVER_ERROR() {
		ResponseResult responseResult = new ResponseResult(TypeUtils.FAILED);
		responseResult.setSuccess(false);
		return responseResult;
	}

	/**
	 * 服务器内部出错
	 * @param message 消息
	 */
	public static ResponseResult SERVER_ERROR(String message) {
		ResponseResult responseResult = new ResponseResult(TypeUtils.SERVER_ERROR);
		responseResult.setMessage(message);
		responseResult.setSuccess(false);
		return responseResult;
	}
	

	public ResponseResult setData(Object data) {
		this.data = data;
		return this;
	}

}

 枚举类TypeUtils封装

public enum TypeUtils {

	/**
	 * 请求成功
	 */
	SUCCESS(200, "请求成功"),
	/**
	 * 请求失败
	 */
	FAILED(400, "请求失败"),
	/**
	 * 接口不存在
	 */
	NOT_FOUND(404, "接口不存在"),
	/**
	 * 服务器内部出错
	 */
	SERVER_ERROR(500, "服务器内部出错");

	private TypeUtils(int code, String message) {
		this.code = code;
		this.message = message;
	}

	/**
	 * 状态
	 */
	private int code;
	/**
	 * 消息
	 */
	private String message;

	/**
	 * 状态
	 */
	public int getCode() {
		return code;
	}

	/**
	 * 状态
	 */
	public void setCode(int code) {
		this.code = code;
	}

	/**
	 * 消息
	 */
	public String getMessage() {
		return message;
	}

	/**
	 * 消息
	 */
	public void setMessage(String message) {
		this.message = message;
	}

}

使用方式Controller

@GetMapping("test")
	public ResponseResult test(String data)throws Exception {
		return ResponseResult.SUCCESS("成功").setData(data);
	}
Spring Boot 中,我们可以使用统一返回处理来规范 API 接口的返回格式,避免重复的代码和降低维护成本。 一般来说,我们可以定义一个 Result 封装接口返回的数据,包括状态码、提示信息和返回数据等。同时,我们还可以定义一个异常处理来捕获全局的异常,并将异常信息封装Result 返回给前端。 以下是一个示例代码: ```java @Data @NoArgsConstructor @AllArgsConstructor public class Result<T> { private Integer code; private String msg; private T data; public static <T> Result<T> success(T data) { return new Result<>(200, "success", data); } public static Result<?> error(Integer code, String msg) { return new Result<>(code, msg, null); } } @ControllerAdvice @ResponseBody public class GlobalExceptionHandler { @ExceptionHandler(value = Exception.class) public Result<?> handleException(Exception e) { log.error("未知异常:{}", e.getMessage()); return Result.error(500, "服务器内部错误"); } @ExceptionHandler(value = BusinessException.class) public Result<?> handleBusinessException(BusinessException e) { log.error("业务异常:{}", e.getMessage()); return Result.error(e.getCode(), e.getMessage()); } } ``` 在上面的代码中,我们定义了一个 Result 封装接口返回的数据。其中,success 方法表示成功时返回的结果,error 方法表示失败时返回的结果。 同时,我们还定义了一个全局异常处理器 GlobalExceptionHandler,用来捕获全局的异常。在 handleException 和 handleBusinessException 方法中,我们分别处理了未知异常和业务异常,并将异常信息封装Result 返回给前端。 通过使用统一返回处理,我们可以大大简化接口返回的代码,提高代码的可维护性和可读性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-独孤求败-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值