封装统一的服务端响应数据封装,状态码,枚举消息

拥有回忆 提交于 2020-01-17 04:19:58

【状态码说明】HTTP状态码 、HTTP在线工具

【完成源码案例】github地址

创建响应状态码和说明枚举类

/**
 * 响应状态码和说明
 */
public enum CodeEnum {
    SUCCESS(0, "成功!"),
    FAIL(1, "失败,未知错误!"),;

    /**
     * 响应状态码
     */
    private final int code;

    /**
     * 响应提示
     */
    private final String msg;

    CodeEnum(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}

基本响应封装

/**
 * 基本响应封装
 */
public class BaseResponse {

	/**
	 * 响应码
	 */
	private int code;

	/**
	 * 响应消息
	 */
	private String msg;

	protected BaseResponse() {}

	protected BaseResponse(CodeEnum code) {
    	this.code = code.getCode();
    	this.msg = code.getMsg();
    }

    public static BaseResponse out(CodeEnum code) {
    	return new BaseResponse(code);
    }

	public int getCode() {
		return code;
	}

	public void setCode(int code) {
		this.code = code;
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}
}

响应数据结构封装

/**
 * 响应数据结构封装
 */
public class ResponseData<T> extends BaseResponse {

	private T data;

	private ResponseData() {}

	private ResponseData(CodeEnum code, T data) {
		super(code);
		this.data = data;
	}
	
	public static <T> ResponseData<T> out(CodeEnum code, T data) {
		return new ResponseData<T>(code, data);
	}

	public T getData() {
		return data;
	}

	public void setData(T data) {
		this.data = data;
	}

}

测试

public static void main(String[] args) {
    BaseResponse out = BaseResponse.out(CodeEnum.SUCCESS);
    System.out.println("基本响应封装:\n" + JSON.toJSONString(out));
    List<String> list = new LinkedList<>();
    list.add(UUID.randomUUID().toString());
    ResponseData<List<String>> data = ResponseData.out(CodeEnum.FAIL, list);
    System.out.println("响应数据结构封装:\n" + JSON.toJSONString(data));
}

打印结果:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!