课程名称:Spring Cloud 进阶 Alibaba 微服务体系自媒体实战
课程章节: 第2章 架构后端项目
主讲老师: 风间影月
课程内容
不论是网页还是app,后端都需要构建一个json对象的封装,来让前端人员对接。
在上节课程中,写了一个Hello接口,响应参数是直接写死为String,但是在企业实际的项目开发的过程当中,通常会返回一个状态码。前端(H5/小程序/app)会对响应参数进行封装。例如:后端返回500,前端会直接提示后端执行异常。
本章当中,提到了。通常在设计公共返回参数的常用的一些状态码:
200:表示成功 500:表示错误,错误信息在msg字段中 501:bean验证错误,不管多少个错误都以map形式返回 502:拦截器拦截到用户token出错 555:异常抛出信息 556: 用户qq校验异常 557: 校验用户是否在CAS登录,用户门票的校验
在设计公共响应属性当中,通常需要包含以下字段:
status:响应业务状态。
msg:响应前端的信息。
data:响应具体数据。
课程收获
通过本章的学习,独立的封装类一个响应参数类:
package org.obtain.obtain_customer_server.common; /** * @author lihq * @title: 异常处理类 * @projectName obtain_customer_server * @description: * 调用方式: * 正常返回:Result.success(service.getAll()); * 异常返回:Result.error(ERROR_1); * @date 2022/9/10 19:08 */ public class Result<T> { /** * 状态码 */ private int code; /** * 返回的信息 */ private String msg; /** * 返回的数据 */ private T data; /** * 成功时候的调用(有数据) * @param data * @param <T> * @return */ public static <T> Result<T> success(T data){ return new Result<T>(data); } /** * 成功时候的调用(无数据) * @param <T> * @return */ public static <T> Result<T> success(){ return new Result<T>(); } /** * 异常时候的调用(有msg参数) * @param msg * @param <T> * @return */ public static <T> Result<T> error(String msg){ return new Result<T>(msg); } /** * 异常时候的调用(无msg参数) * @param <T> * @return */ public static <T> Result<T> error(){ return new Result<T>("error"); } /** * 异常时候的调用(固定参数) * @param error * @param <T> * @return */ public static <T> Result<T> error(BizError error){ return new Result<T>(error); } private Result(BizError error) { if (error == null){ return ; } this.code = error.getCode(); this.msg = error.getMsg(); } private Result(T data) { this.code = 200; this.msg = "success"; this.data = data; } private Result() { this.code = 200; this.msg = "success"; } private Result(String msg) { this.code = 400; this.msg = msg; } public int getCode() { return code; } public String getMsg() { return msg; } public T getData() { return data; } }
在Controller的请求实际代码参考:
@PostMapping("/getUserInfo") public Result<Customer> getUserInfo(){ Customer customer = customerService.getById(StpUtil.getLoginIdAsLong()); return Result.success(customer); }
课程截屏
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦