SpringMVC表现层数据封装统一格式

表现层数据封装

表现层数据封装就是返回给前端的Json数据,格式统一,方便前端去解析Json串里的数据。

返回数据格式设计:

​ 状态
​ 数据

​ 消息

返回数据状态设计:视个人业务决定

​ 根据业务不同设计不同的状态码

​ 404

​ 500

​ 200

表现层包装类

package com.test.springmvc.result;



/**
 * @author zhangzengxiu
 * @date 2021/11/29
 */
public class Result<T> {

    /**
     * 结果编码
     */
    private Integer code;

    /**
     * 操作结果数据
     */
    private T data;

    /**
     * 消息
     */
    private String message;

    public Result(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    public Result(Integer code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }


    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public T getData() {
        return data;
    }

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

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

操作编码

package com.test.springmvc.result;

/**
 * @author zhangzengxiu
 * @date 2021/11/29
 */
public enum Status {

    SAVE_OK(20011, "保存成功"),
    DELETE_OK(20021, "删除成功"),
    UPDATE_OK(20031, "修改成功"),
    GET_OK(20041, "查询成功"),
    SAVE_ERR(20010, "保存失败"),
    DELETE_ERR(20020, "删除失败"),
    UPDATE_ERR(20030, "修改失败"),
    GET_ERR(20040, "查询失败");

    /**
     * 状态编码
     */
    private Integer code;

    /**
     * 状态信息
     */
    private String message;

    Status(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    public Integer getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }
}

修改后的Controller

package com.test.springmvc.controller;

import com.test.springmvc.domain.User;
import com.test.springmvc.result.Result;
import com.test.springmvc.result.Status;
import com.test.springmvc.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author zhangzengxiu
 * @date 2021/11/26
 */
@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/findALL")
    public Result<List<User>> findALL() {
        List<User> userList = userService.findALL();

        if (userList == null || (userList != null && userList.size() == 0)) {
            return new Result(Status.GET_ERR.getCode(), Status.GET_ERR.getMessage());
        }
        return new Result(Status.GET_OK.getCode(), Status.GET_OK.getMessage(), userList);
    }

    @GetMapping("/findById/{id}")
    public Result<User> findById(@PathVariable("id") int id) {
        User user = userService.findById(id);
        if (user == null) {
            return new Result(Status.GET_ERR.getCode(), Status.GET_ERR.getMessage());
        }
        return new Result(Status.GET_OK.getCode(), Status.GET_OK.getMessage(), user);
    }


    @PostMapping("/addUser")
    public Result addUser(@RequestBody User user) {
        Integer row = userService.addUser(user);
        if (row != 1) {
            return new Result(Status.SAVE_ERR.getCode(), Status.SAVE_ERR.getMessage());
        }
        return new Result(Status.SAVE_OK.getCode(), Status.SAVE_OK.getMessage());
    }

    @DeleteMapping("/delUserById/{id}")
    public Result delUserById(@PathVariable("id") int id) {
        Integer row = userService.delUserById(id);
        if (row != 1) {
            return new Result(Status.DELETE_ERR.getCode(), Status.DELETE_ERR.getMessage());
        }
        return new Result(Status.DELETE_OK.getCode(), Status.DELETE_OK.getMessage());
    }


    @PutMapping("/updateUser")
    public Result updateUser(@RequestBody User user) {
        Integer row = userService.updateUser(user);
        if (row != 1) {
            return new Result(Status.UPDATE_ERR.getCode(), Status.UPDATE_ERR.getMessage());
        }
        return new Result(Status.UPDATE_OK.getCode(), Status.UPDATE_OK.getMessage());
    }

返回数据

操作成功时,返回的Json数据格式:

举例:查询全部

{
    "code": 20041,
    "data": [
        {
            "id": 1,
            "name": "张三",
            "age": 23
        },
        {
            "id": 2,
            "name": "李四",
            "age": 24
        },
        {
            "id": 3,
            "name": "王五",
            "age": 25
        },
        {
            "id": 4,
            "name": "赵六",
            "age": 26
        }
    ],
    "message": "查询成功"
}

操作失败时,返回的Json数据格式:

举例:查询单个

{
    "code": 20040,
    "data": null,
    "message": "查询失败"
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值