springboot+vue——6

1.创建公共工具项目

1.1创建子子模块common_utils
在这里插入图片描述
在这里插入图片描述

2.完成对指定结果的编写

数据格式如下
在这里插入图片描述

{
  "success": true,
  "code": 20000,
  "message": "成功",
  "data": {
    "items": [
      {
        "id": "1",
        "name": "刘德华",
        "intro": "毕业于师范大学数学系,热爱教育事业,执教数学思维6年有余"
      }
    ]
  }
}

2.1定义接口,实现返回状态码
在这里插入图片描述

定义20000表示成功,20001表示失败
因为状态码是固定的,在接口里定义两个状态码

package com.neusoft.commonutils;

public interface ResultCode {
    public static Integer SUCCESS = 20000;//成功
    public static Integer ERROR = 20001;//失败
}

2.2创建返回类,定义属性
在这里插入图片描述

创建一个返回类,先定义四个属性(别忘了加@Data注解)
参考下图
在这里插入图片描述

    @ApiModelProperty(value = "是否成功")
    private Boolean success;

    @ApiModelProperty(value = "返回码")
    private Integer code;

    @ApiModelProperty(value = "返回消息")
    private String message;

    @ApiModelProperty(value = "返回数据")
    private Map<String, Object> data = new HashMap<String, Object>();

2.3 R的构造方法私有化
和状态码类似,返回的结果也是固定的
要么是ok里边内容固定,要么失败error
这种方法,别人不能new R的对象。只能使用public static R定义的方法。
即只能使用error和ok这两个静态方法
在静态方法里,本身你在R这个类,自己可以new R对象。
然后通过new的对象,把R的属性进行set设置。set完之后return set完的对象。

    private R(){}

    public static R ok(){
        R r = new R();
        r.setSuccess(true);
        r.setCode(ResultCode.SUCCESS);
        r.setMessage("成功");
        return r;
    }

    public static R error(){
        R r = new R();
        r.setSuccess(false);
        r.setCode(ResultCode.ERROR);
        r.setMessage("失败");
        return r;
    }

2.4实现链式编程
因为上边ok和error返回的都是R对象
然后我又定义的方法也是返回R对象,即public R 方法名(return r)
前边是R对象,R这个类有这些方法(ok、error、success、message、code、data)。
他的对象就可以调用这些方法,且每个方法都返回这个对象。
正常调用类的方法是对象.方法
但是这个链式编程是对象.方法(返回对象)还可以继续.方法(返回对象)
相当于 方法(返回对象).方法(返回对象).方法(返回对象)

return this可以理解为当前类的对象(谁调用这个方法,就代表谁)
R的完整内容

@Data
public class R {
    @ApiModelProperty(value = "是否成功")
    private Boolean success;

    @ApiModelProperty(value = "返回码")
    private Integer code;

    @ApiModelProperty(value = "返回消息")
    private String message;

    @ApiModelProperty(value = "返回数据")
    private Map<String, Object> data = new HashMap<String, Object>();

    private R(){}

    public static R ok(){
        R r = new R();
        r.setSuccess(true);
        r.setCode(ResultCode.SUCCESS);
        r.setMessage("成功");
        return r;
    }

    public static R error(){
        R r = new R();
        r.setSuccess(false);
        r.setCode(ResultCode.ERROR);
        r.setMessage("失败");
        return r;
    }

    public R success(Boolean success){
        this.setSuccess(success);
        return this;
    }

    public R message(String message){
        this.setMessage(message);
        return this;
    }

    public R code(Integer code){
        this.setCode(code);
        return this;
    }

    public R data(String key, Object value){
        this.data.put(key, value);
        return this;
    }

    public R data(Map<String, Object> map){
        this.setData(map);
        return this;
    }
}

3.测试统一结果

3.1把common_utils引入到service中
3.2在controller中把返回的结果都换成R结果

@GetMapping("findAll")
    public R findAllteacher(){
    List<EduTeacher> list = eduTeacherService.list(null);
    return R.ok().data("items",list);
    }
    //2逻辑删除讲师
    @DeleteMapping("{id}")
    public  R remocveTeacher(@PathVariable String id){
        //.var
        boolean b = eduTeacherService.removeById(id);
        if(b){
            return R.ok();
        }else {
            return R.error();
        }

    }

3.3使用swagger进行测试,查看返回结果
http://localhost:8001/swagger-ui.html
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我柒月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值