springboot(2):统一响应体

统一响应体包括code、msg和data三个标准的键值对。
在这里插入图片描述
这里直接返回这样的数据应该不太标准,按道理这个json应该放在data里面

编写统一响应体

项目新建common包,里面新建一个Response或者R的class文件
在这里插入图片描述
里面编写代码为

@Data
public class R<T> {
    public int code;
    public String msg;
    public T data;
    //第一种形式
    public  R(int code, String msg){
        this.code=code;
        this.msg=msg;
    }
    public  R(int code, T data){
        this.code=code;
        this.data=data;
    }
    public  R(int code,String msg,T data){
        this.code=code;
        this.msg=msg;
        this.data=data;
    }

    public R() {

    }
// 第二种形式
    public static<T> R<T> success(T data){
        R<T> r=new R<T>();
        r.code=1;
        r.msg="成功";
        r.data=data;
        return r;
    }
    public static<T> R<T> error(String msg){
        R<T> r=new R<T>();
        r.code=0;
        r.msg=msg;
        return r;
    }
}

(这里若看不明白,需要学习下泛型和static的用法)
第一种形式可以自定义msg、code和data的样式。第二种code、msg、data大多定死。

改造之前写的get、post的请求方法为

@RestController   //为Response+Controller结合,其中Response告诉接口返回json数据,如果没有数据返回形式非map,按照text形式返回数据
@RequestMapping("/test")  //规定统一前缀
public class ApiTestController {
    Map<Object,Object> map = new HashMap<>();
    @GetMapping("/testGet")  //GetMapping定义方法为get请求,路由为/test/testGet
    public R getMethod(int page, int pageSize, String name){**//替换之前的Map<Object,Object>为R**
        //定义传参为page、pageSize和name为该接口的传参请求
        map.put("page",page);
        map.put("pageSize",pageSize);
        map.put("name",name);
        return new R(1,"成功",map);  **//替换之前的return map为return new R(1,"成功",map) **
//      return  name;
    }

    @PostMapping("/testPost") //PostMapping定义方法为post请求,路由为/test/testPost
    public R postMethod(@RequestBody Map<Object,Object> map){**//替换之前的Map<Object,Object>为R**
        return R.success(map);   **//替换之前的return map为return  R.success(1,"成功",map) **
    }

    @PostMapping("/testPost/{id}") //PostMapping定义方法为post请求,路由为/test/testPost/路径
    public R postPathVariable(@PathVariable int id){**//替换之前的Map<Object,Object>为R**
        map.put("id",id);
        return new R(1,map);  **//替换之前的return map为return new R(1,map)**
    }
}

postaman查看返回接口样式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值