SpringBoot(三):Respond封装

Spring Boot系列
SpringBoot(一):Quick start
SpringBoot(二):多环境切换

目录

一.简介
二.Respond封装
三.请求测试

一.简介

在实际的开发过程中,我们会面临着服务接口调用,接口中返回的数据格式各种,没有一个统一的标准,会造成在前端和后端,后端与后端数据对接的过程中出现各种数据格式异常,所以有必要对数据处理有有一定的状态码,信息,数据的封装

二.Respond封装

这里写图片描述

如上图,建立两个文件

/citydata/constant/ResponseCode.java
/citydata/response/ReturnData.java

2.1 ResponseCode.java

ps:该类是个枚举类,以后可以根据自己业务需求,添加自己所需的响应状态码和信息

package com.citydata.constant;

/**
 * @author yjgithub
 * @create 2018/05/28 15:38
 * @desc 响应状态码及信息
 **/
public enum ResponseCode {

    OPERATION_SUCCESS(200, "操作成功"),
    OPERATION_ERROR(400, "操作失败");


    ResponseCode(int status, String msg) {
        this.status = status;
        this.msg = msg;
    }

    private int status;
    private String msg;

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

2.2 ReturnData.java

package com.citydata.response;

import com.citydata.constant.ResponseCode;

/**
 * @author yjgithub
 * @create 2018/5/28 11:48
 * @Description: 业务响应实体
 */

public class ReturnData {


    //响应业务状态码
    private Integer status;

    //响应信息
    private String msg;

    //响应数据
    private Object data;
    public ReturnData(Integer status, String msg) {
        this.status = status;
        this.msg = msg;
    }

    public ReturnData(Integer status, String msg, Object data) {
        this.status = status;
        this.msg = msg;
        this.data = data;
    }

    public static ReturnData build(Integer status, String msg,Object data) {
        return new ReturnData(status, msg, data);
    }

    public static ReturnData build(Integer status, String msg) {
        return new ReturnData(status, msg, null);
    }


    public static ReturnData ok(Object data) {
        return new ReturnData(data);
    }

    public static ReturnData ok() {
        return new ReturnData(null);
    }


    public ReturnData() {
    }


    public ReturnData(Object data) {
        this.status = ResponseCode.OPERATION_SUCCESS.getStatus();
        this.msg = ResponseCode.OPERATION_SUCCESS.getMsg();
        this.data = data;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    @Override
    public String toString() {
        return "ReturnData{" +
                "status=" + status +
                ", msg='" + msg + '\'' +
                ", data=" + data +
                '}';
    }
}

三.请求测试

3.1 改造类
ps:根据该SpringBoot(一)Quick start博客提到的三个类,进行改造返回对应的请求体(ReturnData)

    /citydata/controller/TestController.java   
    /citydata/service/TestService.java
    /citydata/service/impl/TestImpl.java

3.1.1TestController.java


/**
 * Created by yjgithub on 2018/5/28.
 */
@RestController
@RequestMapping("test")
public class TestController {
    @Autowired
    TestImpl testService;

    @RequestMapping("/index")
    public ReturnData index(String Str) {
        return testService.test(Str);
    }
}

3.1.2 TestService.java

/**
 *
 * Created by yjgithub on 2018/5/28.
 */
public interface TestService {
    public ReturnData test(String str);
}

3.1.3 TestImpl.java

/**
 * Created by yjgithub on 2018/5/28.
 */
@Service
public class TestImpl implements TestService {
    @Override
    public ReturnData test(String str) {
        ReturnData rd = new ReturnData(ResponseCode.OPERATION_SUCCESS.getStatus(),ResponseCode.OPERATION_SUCCESS.getMsg(),str);
        return rd;
    }
}

3.2 测试
这里写图片描述

PS:需要项目源代码,请邮件yjgithub@163.com联系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值