文章目录

  • 1. 返回结果封装
  • 2. 自定义异常
  • 3. 校验工具类
  • 4. 使用案例
  • 5. 前端效果图
1. 返回结果封装
package com.course.server.dto;public class ResponseDto<T> {/*** 业务上的成功或失败*/private boolean success = true;/*** 返回码*/private String code;/*** 返回信息*/private String message;/*** 返回泛型数据,自定义类型*/private T content;public String getCode() {return code;}public void setCode(String code) {this.code = code;}public boolean getSuccess() {return success;}public void setSuccess(boolean success) {this.success = success;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public T getContent() {return content;}public void setContent(T content) {this.content = content;}@Overridepublic String toString() {final StringBuffer sb = new StringBuffer("ResponseDto{");sb.append("success=").append(success);sb.append(", code='").append(code).append('\'');sb.append(", message='").append(message).append('\'');sb.append(", content=").append(content);sb.append('}');return sb.toString();}
}
2. 自定义异常
package com.course.server.exception;public class ValidatorException extends RuntimeException {public ValidatorException(String message) {super(message);}
}
3. 校验工具类
package com.course.server.util;import com.course.server.exception.ValidatorException;
import org.springframework.util.StringUtils;public class ValidatorUtil {/*** 空校验(null or "")*/public static void require(Object str, String fieldName) {if (StringUtils.isEmpty(str)) {throw new ValidatorException(fieldName + "不能为空");}}/*** 长度校验*/public static void length(String str, String fieldName, int min, int max) {if (StringUtils.isEmpty(str)) {return;}int length = 0;if (!StringUtils.isEmpty(str)) {length = str.length();}if (length < min || length > max) {throw new ValidatorException(fieldName + "长度" + min + "~" + max + "位");}}}
4. 使用案例
@PostMapping("/save")public ResponseDto save(@RequestBody ChapterDto chapterDto) {// 保存校验ValidatorUtil.require(chapterDto.getName(), "名称");ValidatorUtil.require(chapterDto.getCourseId(), "课程ID");ValidatorUtil.length(chapterDto.getCourseId(), "课程ID", 1, 8);ResponseDto responseDto = new ResponseDto();chapterService.save(chapterDto);responseDto.setContent(chapterDto);return responseDto;}
5. 前端效果图


SpringBoot/Cloud 统一返回优雅设计+自定义异常相关推荐

  1. springboot优雅地统一返回格式

    web后端开发,统一后端数据的返回格式是每个项目都应该做的,得益于springboot的方法拦截,因此基于springboot可以非常优雅地统一返回的数据格式,以下是实现代码(演示的返回格式:{cod ...

  2. 如何优雅设计 API 接口,实现统一格式返回?

    来源:老顾聊技术 前言 在移动互联网,分布式.微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后端分离方式, (题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都 ...

  3. SpringBoot 如何统一后端返回格式?老鸟们都是这样玩的!

    大家好,我是磊哥. 今天我们来聊一聊在基于SpringBoot前后端分离开发模式下,如何友好的返回统一的标准格式以及如何优雅的处理全局异常. 首先我们来看看为什么要返回统一的标准格式? 为什么要对Sp ...

  4. Spring Boot 2.x(六):优雅的统一返回值

    目录 为什么要统一返回值 ReturnVO ReturnCode 使用ReturnVO 使用AOP进行全局异常的处理 云撸猫 公众号 为什么要统一返回值 在我们做后端应用的时候,前后端分离的情况下,我 ...

  5. 分布式之API接口返回格式如何优雅设计?,苦熬一个月

    #2000-2999 区间表示用户错误 #3000-3999 区间表示接口异常 这样前端开发人员在得到返回值后,**根据状态码就可以知道,大概什么错误**,再根据message相关的信息描述,**可以 ...

  6. SpringBoot统一返回处理出现cannot be cast to java.lang.String异常

    SpringBoot统一返回处理出现cannot be cast to java.lang.String异常 一 问题出现背景: 二 解决方案 三 异常原因分析 原因: 源码详细分析: 正常返回: 返 ...

  7. Java设计API 接口统一返回格式

    前言 在移动互联网,分布式.微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后端分离方式. 一般系统的大致整体架构图如下: 本篇关注点为API接口,所以架构图有所不同 接口交互 前端和后端进行 ...

  8. java中飞飞检查异常_Springboot项目如何在controller层统一返回数据以及处理异常

    在开发项目中,对于controller返回数据同时返回可能大家都能够做到.也就是定义一个相应类,里面有code, msg,content(或data). 在此基础上可能还会再封装以下,搞个基础cont ...

  9. api laravel 统一返回方法_你写的API接口代码真的烂,难道不能对返回格式统一处理一下吗?...

    随着互联网各岗位精细化分工的普及,出现了很多的系统架构设计,比如常见的前后端分离架构,后端提供接口给前端,前端根据接口的数据进行渲染,大家各执其职,效率也非常的高,但是随着接口的增加,如果不统一的规范 ...

最新文章

  1. AngularJS和DataModel
  2. Spring Boot 2.0 常见问题总结(一)
  3. Python相关机器学习‘武器库’
  4. eclipse远程开发
  5. C语言 数据结构 栈(用链表实现)
  6. 我对STL的一些看法(一)初步认识STL
  7. SAP BAPI 教程 – 在 ABAP 中创建 BAPI 的分步指南-020
  8. 个人信息安全规范----7、个人信息安全事件处置
  9. uint8_t / uint16_t / uint32_t /uint64_t 这些数据类型是什么?
  10. 关于我玩单片机学习路线(个人总结)
  11. 1194: 总成绩排序(结构体专题)
  12. MongoDB 极简实践入门
  13. “M1芯片”电脑杀手:Windows笔记本电脑目前岌岌可危
  14. 祈求代码不出 Bug 该拜哪个“神仙”?
  15. SAP 玻璃原片单位问题处理
  16. 按钮(Button, ImageButton)
  17. 浏览器事件模型与jquery事件
  18. android 图片拼接工具,拼接图片工具app
  19. Efficientdet源码详解
  20. 某航某个大作业:十五数码A*算法,Python实现

热门文章

  1. 德媒看2019年的世界:西方在争吵,中国在崛起,非洲在增长……
  2. 印度首富之女大婚,贫穷限制了我的想象……
  3. 如何打开java_怎样运行java
  4. Python使用笔记总结目录
  5. flink连接kafka整合hbase,scala
  6. 递归学习 斐波那契 java代码实现
  7. 阿里云正式推出内容平台“云栖号”:全面助力企业和个人上云决策
  8. 阿里HBase高可用8年抗战回忆录
  9. 同学,要不要来挑战双11零点流量洪峰?
  10. 如何实现7*24小时灵活发布?阿里技术团队这么做