2022-05-02 一.统一响应码

前言

作为后端服务器,返回给前端的数据需要统一格式,一般为:

{
	code:200,
	msg: "接口请求成功",
	data:...
}

为了方便开发,会考虑对返回状态、返回结构体进行封装

统一响应码

请添加图片描述

响应状态

@Getter
@AllArgsConstructor
public enum ResponseStatus {
    
    OK(20000, "操作成功"),
    ERROE(55555, "操作失败"),
    FORM_VALID_ERROR(33333, "表单校验失败"),
    ADMIN_EXIST(33334, "员工已存在"),
    NOT_IMG(33335, "不是图片"),
    IMG_TYPE_ERROR(33336, "图片格式不正确"),
    IMG_TOO_LARGE(33337, "图片太大"),
    IMG_SIZE_ERROR(33338, "图片尺寸不正确"),
    UPLOAD_ERROR(33339, "图片上传失败"),
    UNKOWN_ERROR(50000, "服务器错误"),
    NO_LOGIN(44444, "未登录"),
    NO_PERM(44555, "没权限"),
    RETURN_STRING_ERROR(47777, "返回String类型错误"),

    ;
    private int status;

    private String message;


    public void setStatus(int status) {
        this.status = status;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

响应结果

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ResponseResult<T> {
    private int status;
    private String message;
    private T data;

    private ResponseResult(ResponseStatus responseStatus, T t) {
        this.status = responseStatus.getStatus();
        this.message = responseStatus.getMessage();
        this.data = t;
    }

    /**
     * 成功的方法
     */

    public static <T> ResponseResult<T> success() {
        return getInstance(ResponseStatus.OK, null);
    }


    /**
     * 成功的方法
     * 携带数据
     */
    public static <T> ResponseResult<T> success(T t) {
        return getInstance(ResponseStatus.OK, t);
    }


    /**
     * 失败的方法
     */
    public static <T> ResponseResult<T> error() {
        return getInstance(ResponseStatus.ERROE, null);
    }

    /*
     自定义失败状态码
     */
    public static <T> ResponseResult<T> error(ResponseStatus responseStatus) {
        return getInstance(responseStatus, null);
    }

    /**
     * 自定义状态码和数据
     *
     * @param responseStatus
     * @param t
     * @param <T>
     * @return
     */
    public static <T> ResponseResult<T> error(ResponseStatus responseStatus, T t) {
        return getInstance(responseStatus, t);
    }

    /**
     * 失败的方法
     */
    public static <T> ResponseResult<T> error(T t) {
        return getInstance(ResponseStatus.ERROE, t);
    }


    private static <T> ResponseResult<T> getInstance(ResponseStatus responseStatus, T t) {
        return new ResponseResult<T>(responseStatus, t);
    }
}

例子

@RestController
public class XxxController {

	@Autowired
	XxxService xxxService;

	@RequestMapping("xxx")
	public ResponseResult xxx() {
		return ResponseResult.success(xxxService.xxx());
	}
}

这样返回的就是自定义格式,当然具体的实现会根据项目进行调整,这些只是大致原理

下一篇跳转:2.全局统一返回处理.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值