表现层数据封装
- @[TOC](表现层数据封装)
- 1. 表现层响应数据的问题
- 2. 定义ResponseResults类封装响应结果
- 3. 定义Code类封装响应码
- 4. 表现层数据封装返回Result对象
- 5.postman发送请求结果
表现层数据封装
- @[TOC](表现层数据封装)
- 1. 表现层响应数据的问题
- 2. 定义ResponseResults类封装响应结果
- 3. 定义Code类封装响应码
- 4. 表现层数据封装返回Result对象
- 5.postman发送请求结果
1. 表现层响应数据的问题
目前表现层增删改方法返回true或者false表示是否成功,getById()方法返回一个json对象,getAll()方法返回一个json对象数组,这里就出现了三种格式的响应结果,极其不利于前端解析。
需要统一响应结果的格式
2. 定义ResponseResults类封装响应结果
package com.zhang.controller;
import lombok.*;
@Data//这个注解的作用是生成类的setget方法以及toString方法
@AllArgsConstructor//生成这个类的全参构造器
@RequiredArgsConstructor//生成这个类的指定参数的构造器,与@NonNull搭配使用
@NoArgsConstructor//生成这个类的无参构造器
public class ResponseResults {
@NonNull//作用在属性上,指定该属性为构造器的一个参数
private Integer code;//描述统一格式中的数据
@NonNull
private Object data; //描述统一格式中的编码,用于区分操作
private String message;//描述统一格式中的消息,可选属性
}
3. 定义Code类封装响应码
package com.zhang.controller;
public class Code {
public static final Integer ADD_OK = 20021;//增加成功
public static final Integer DEL_OK = 20031;//删除成功
public static final Integer UPT_OK=20041;//修改成功
public static final Integer SEL_OK = 20011;//查询成功
public static final Integer ADD_FAIL = 20000;//增加失败
public static final Integer DEL_FAIL = 20010;//删除失败
public static final Integer UPT_FAIL = 20020;//修改失败
public static final Integer SEL_FAIL = 20030;//查询失败
}
4. 表现层数据封装返回Result对象
@RestController
@RequestMapping("/books")
public class BookController {
@Autowired
private BookService bookService;
/**
* 查一个
*/
@GetMapping("getAll/{id}")
public ResponseResults queryById(@PathVariable("id") Integer id){
Book book = bookService.queryById(id);
Integer code = book != null ? Code.SEL_OK : Code.SEL_FAIL;
String msg = book != null ? "" : "数据查询失败,请重试!";
return new ResponseResults(code,book,msg);
}
......
}