Всем привет, в этой главе мы инкапсулируем результат запроса в унифицированный формат. Если у вас есть какие-либо вопросы, пожалуйста, свяжитесь со мной по адресу mr_beany@163.com. Также попросите руководства великих богов, спасибо
Первый: Каковы преимущества этого?
Типы, возвращаемые вызываемой нами службой, включают String, List, Map, Bean, Int, Boolean и т. д., которые можно объединить в объект результата и вернуть, что удобно другим участникам проектной группы для вызова интерфейса
Два: определить перечисление кода ответа
package com.example.demo.core.ret;
/**
* @Description: 响应码枚举,参考HTTP状态码的语义
* @author 张瑶
* @date 2018/4/19 09:42
*/
public enum RetCode {
// 成功
SUCCESS(200),
// 失败
FAIL(400),
// 未认证(签名错误)
UNAUTHORIZED(401),
// 接口不存在
NOT_FOUND(404),
// 服务器内部错误
INTERNAL_SERVER_ERROR(500);
public int code;
RetCode(int code) {
this.code = code;
}
}
Вот несколько простых, мы можем определить свои собственные потребности на основе фактического бизнеса
Третье: создать сущность возвращаемого объекта
package com.example.demo.core.ret;
import java.io.Serializable;
import com.alibaba.fastjson.JSON;
/**
* @Description: 返回对象实体
* @author 张瑶
* @date 2018/4/19 09:43
*/
public class RetResult<T> {
public int code;
private String msg;
private T data;
public RetResult<T> setCode(RetCode retCode) {
this.code = retCode.code;
return this;
}
public int getCode() {
return code;
}
public RetResult<T> setCode(int code) {
this.code = code;
return this;
}
public String getMsg() {
return msg;
}
public RetResult<T> setMsg(String msg) {
this.msg = msg;
return this;
}
public T getData() {
return data;
}
public RetResult<T> setData(T data) {
this.data = data;
return this;
}
}
Описание: Код является кодом состояния, MSG - это оперативная информация, а данные возвращаются данные
Четыре: преобразовать формат данных
package com.example.demo.core.ret;
/**
* @Description: 将结果转换为封装后的对象
* @author 张瑶
* @date 2018/4/19 09:45
*/
public class RetResponse {
private final static String SUCCESS = "success";
public static <T> RetResult<T> makeOKRsp() {
return new RetResult<T>().setCode(RetCode.SUCCESS).setMsg(SUCCESS);
}
public static <T> RetResult<T> makeOKRsp(T data) {
return new RetResult<T>().setCode(RetCode.SUCCESS).setMsg(SUCCESS).setData(data);
}
public static <T> RetResult<T> makeErrRsp(String message) {
return new RetResult<T>().setCode(RetCode.FAIL).setMsg(SUCCESS);
}
public static <T> RetResult<T> makeRsp(int code, String msg) {
return new RetResult<T>().setCode(code).setMsg(msg);
}
public static <T> RetResult<T> makeRsp(int code, String msg, T data) {
return new RetResult<T>().setCode(code).setMsg(msg).setData(data);
}
}
Пять: функциональный тест
Изменить код контроллера
код до ремонта
@PostMapping("/selectById")
public UserInfo selectById(Integer id){
return userInfoService.selectById(id);
}
Запросить формат возвращаемых данных перед преобразованием
{
"id": 1,
"userName": "1"
}
код после модификации
@PostMapping("/selectById")
public RetResult<UserInfo> selectById(Integer id){
UserInfo userInfo = userInfoService.selectById(id);
return RetResponse.makeOKRsp(userInfo);
}
После преобразования запрос возвращает формат данных
{
"code": 200,
"msg": "success",
"data": {
"id": 1,
"userName": "1"
}
}
Как, не чувствует много крутых
адрес проекта
Адрес облака кода:git ee.com/bean также/no SPR…
Адрес гитхаба:GitHub.com/my bean also/no s…
Писать статьи непросто, если это вам поможет, нажмите звездочку
конец
Выделенный результат запроса, инкапсулированного в единый формат, был завершен, следующий последующий функция после другого обновления, есть вопросы, которые вы можете связаться со мной MR_BEANY@163.com. Также попросите руководства у всех великих богов, спасибо всем.