3-谷粒学苑

统一数据返回格式
摘要由CSDN通过智能技术生成

统一返回数据格式

json数据格式:2种
对象
数组
实际中两种混合使用
返回结果数据格式(列表)
分页会增加 total和rows(对应data)

{
   "success":布尔 //响应是否成功
"code":数字 //状态码
"message":字符串 //返回消息
"data":HashMap //返回数据,放在键值对种
}

1.在common模块创建子模块common_utils
2.创建interface,定义数据返回状态码
*成功 20000
*失败 20001

package com.atguigu.commonutils;
/**
 * 统一结果状态码
 */
public interface ResultCode {
   

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

3.定义返回数据格式

package com.atguigu.commonutils;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;

@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;
    }
	//下面四个方法返回this是链式编程  可以对类中的每一个属性单独设置
    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;
    }
}

4.具体使用
(1)在service模块种引入common_utils

        <!--引入统一返回结果集-->
        <dependency>
            <groupId>com.atguigu</groupId>
            <artifactId>common_utils</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

(2)接口方法返回结果都为R(注意导入的R的包)

	//查询讲师所有数据
    @GetMapping("findAll")
    public R findAllTeacher(){
   
        //调用service中的方法,实现查询所有的操作
        List<EduTeacher> list = teacherService.list(null);
        return R.ok().data("items",list);
    }
    @DeleteMapping("{id}")
    //@PathVariable获取路径中的id值
    public R removeTeacher(@ApiParam(name = "id",value = "讲师ID",required = true)
                                     @PathVariable String id){
   
        boolean flag = teacherService.removeById(id);
        if (flag){
   
            return R.ok();
        }else {
   
            return R.error();
        }
    }

讲师分页管理

1.配置mp分页插件

 	/**
     * 分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
   
        return new PaginationInte
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值