自定义统一结果返回

在日常编写代码的时候我们发现,后端返回的数据种类不一,复杂多样,处理起来也很复杂,所以我们需要定义一个统一返回对象,方便前后端交互时使用。

一、自定义统一返回对象

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ResponseResult {
    private Integer code;
    private String message;
    private Object data;

    public static ResponseResult success(Object data){
        return new ResponseResult(200,"success",data);
    }
    public static ResponseResult success(String message,Object data){
        return new ResponseResult(200,message,data);
    }

    public static ResponseResult fail(Integer code,String meaages){
        return new ResponseResult(code,meaages,null);
    }
}

1、code 状态码。

2、message 提示信息。

3、data 返回的数据,使用Object类型,可以接收任意对象类型。

4、同时我们还可以提供静态的success和fail方法,方便我们包装返回数据。

二、前端处理

instance.interceptors.response.use(
    (response) => {
        //响应状态码为200时执行
        //提取token
        // const localtoken = window.localStorage.getItem("token")
        // if(localtoken == null){
        //     let token = response.data.data.token
        //     if(token != null){
        //         console.log(token)
        //         //将token存入localstorage
        //         window.localStorage.setItem('token',token)
        //     }
        // }

        //未登录则清空token
        // let code = response.data.code
        // if(code == 401){
        //     window.localStorage.removeItem("token")
        // }

        // let res = response.data
        // if(typeof res === 'string'){
        //     res = res ? JSON.parse(res) : res
        // }
        // console.log(res)
        let code = response.data.code
        if(code == 200){
            let messages = response.data.message
            ElMessage({
                message: messages,
                type:'success'
            })
        }else{
            let messages = response.data.message
            ElMessage({
                message: messages,
                type: 'error'
            })
        }
        return response
    },
    (error) => {
        //返回异常处理
        console.log(error.message)
        //最后一定要返回一个promise
        return Promise.reject(error)
    }
)

我们可以根据统一返回的对象类型,在返回结果的过滤器中做出统一的处理。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值