SpringBoot从零搭建一个项目(五)定义返回格式

矫情吗;* 2023-03-06 05:02 63阅读 0赞

如果我们直接返回对象的json格式,对于客户端来说,使用体验不是很好,一般还要返回code和错误信息,所以这里我们做一次封装。
先定义返回的格式如下:

  1. {
  2. data: {}
  3. code: 100
  4. msg:“正常”
  5. }

封装返回的类:

  1. public class JsonResult {
  2. public static String CODE_SUCCESS = "100";
  3. public static String CODE_FAIL = "101";
  4. private Object data;
  5. private String code;
  6. private String msg;
  7. public JsonResult(Object data, String code, String msg) {
  8. this.data = data;
  9. this.code = code;
  10. this.msg = msg;
  11. }
  12. /**
  13. * 成功
  14. * @param data
  15. * @return
  16. */
  17. public static JsonResult buildData(Object data) {
  18. return new JsonResult(data, CODE_SUCCESS, "");
  19. }
  20. /**
  21. * 失败
  22. * @return
  23. */
  24. public static JsonResult buildFail() {
  25. return new JsonResult("", CODE_FAIL, "异常");
  26. }
  27. }

定义一个控制层基础类,方便在控制层中直接返回格式

  1. public class BaseController {
  2. /**
  3. * 成功-带参数
  4. * @param t
  5. * @return
  6. */
  7. public String success(Object t) {
  8. JsonResult jsonResult = JsonResult.buildData(t);
  9. String resultString = JSONObject.fromObject(jsonResult).toString();
  10. return resultString;
  11. }
  12. /**
  13. * 失败-通用
  14. * @return
  15. */
  16. public String fail() {
  17. JsonResult jsonResult = JsonResult.buildFail();
  18. String resultString = JSONObject.fromObject(jsonResult).toString();
  19. return resultString;
  20. }
  21. }

在控制层中使用:

  1. @RestController
  2. @RequestMapping("/user")
  3. public class UserController extends BaseController {
  4. @RequestMapping("/login")
  5. public String registerAndLogin(
  6. @RequestParam("code") String code,
  7. @RequestParam("nickName") String nickName,
  8. @RequestParam("avatarUrl") String avatarUrl) {
  9. // .......
  10. return success(user);
  11. }
  12. }

返回的结果:

  1. {
  2. code: "100"
  3. data: {avatarUrl: "https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83eo4kicic…MvuIu6doOsvxelA87fzvuAL5rnx3JwCDRXice2HtnzUwQ/132", createDate: "2020-08-04 16:10:40.0", nickName: "WongWoo", openid: "oW_rF5DQwwRl7Ek2ApqrXJryYVMM", unionid: "", …}
  4. msg: ""
  5. }

发表评论

表情:
评论列表 (有 0 条评论,63人围观)

还没有评论,来说两句吧...

相关阅读