如何定义通用Response类

BaseResponse.class

package com.chenglulu.controller.users.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.omg.CORBA.Any;

@Data
public class BaseResponse<T> {
    public BaseResponse() {
        super();
    }

    private String requestId;

    private String message;

    private Integer code;

    private T data;

    public BaseResponse(String requestId, Integer code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
        this.requestId = requestId;
    }

}

ResponseUtil.class

package com.chenglulu.utils;

import com.chenglulu.enums.ResponseEnum;
import com.chenglulu.controller.users.domain.BaseResponse;

public class ResponseUtil {
    /**成功且带数据**/
    public static BaseResponse success(String requestId, Object object){
        BaseResponse res = new BaseResponse();
        res.setRequestId(requestId);
        res.setCode(ResponseEnum.SUCCESS.getCode());
        res.setMessage(ResponseEnum.SUCCESS.getMessage());
        res.setData(object);
        return res;
    }
    /**成功但不带数据**/
    public static BaseResponse success(String requestId){
        BaseResponse result = new BaseResponse();
        res.setRequestId(requestId);
        return success(null);
    }
    /**失败**/
    public static BaseResponse error(String requestId, Integer code,String msg){
        BaseResponse result = new BaseResponse();
        res.setRequestId(requestId);
        result.setCode(code);
        result.setMessage(msg);
        return result;
    }
}

ResponseCodeEnum枚举类

package com.chenglulu.enums;

public enum ResponseCodeEnum {
    //这里是可以自己定义的,方便与前端交互即可
    UNKNOWN_ERROR(-1,"未知错误"),
    SUCCESS(10000,"成功"),
    USER_NOT_EXIST(1,"用户不存在"),
    USER_IS_EXISTS(2,"用户已存在"),
    DATA_IS_NULL(3,"数据为空"),
    ;

    private Integer code;
    private String message;

    ResponseCodeEnum(Integer code, String message){
        this.code = code;
        this.message = message;
    }

    public Integer getCode(){
        return code;
    }

    public String getMessage(){
        return message;
    }
}

使用示例

import com.chenglulu.utils.ResponseUtil;

@RestController
@RequestMapping( value = "/users")
public class UsersController {

    @RequestMapping(value = "/list", method = RequestMethod.GET)
    public BaseResponse queryUsers(HttpServletRequest request){
        String requestId = request.getHeader("X-REQUEST-ID");
        List<Users> usersList = [];
        return ResponseUtil.success(requestId, usersList);
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。