统一返回结果
统一返回结果
项目中我们会将响应封装成json返回,一般我们会将所有接口的数据格式统一, 使前端对数据的操作更一致、轻松。
1、数据格式定义
{ "code": 数字, //业务响应码 "message": 字符串, //返回消息 "data": 对象 //返回数据 }
2、创建通用枚举
@Getter @AllArgsConstructor @ToString public enum ResponseEnum { SUCCESS(0, "成功"), ERROR(-1, "服务器内部错误"), ; // 响应状态码 private Integer code; // 响应信息 private String message; }
3、定义统一结果类
@Data public class R { private Integer code; private String message; private Map<String, Object> data = new HashMap(); /** * 构造器私有 */ private R(){} /** * 返回成功 */ public static R ok(){ R r = new R(); r.setCode(ResponseEnum.SUCCESS.getCode()); r.setMessage(ResponseEnum.SUCCESS.getMessage()); return r; } /** * 返回失败 */ public static R error(){ R r = new R(); r.setCode(ResponseEnum.ERROR.getCode()); r.setMessage(ResponseEnum.ERROR.getMessage()); return r; } /** * 设置特定结果 */ public static R setResult(ResponseEnum responseEnum){ R r = new R(); r.setCode(responseEnum.getCode()); r.setMessage(responseEnum.getMessage()); return r; } public R message(String message){ this.setMessage(message); return this; } public R code(Integer code){ this.setCode(code); return this; } public R data(String key, Object value){ this.data.put(key, value); return this; } public R data(Map<String, Object> map){ this.setData(map); return this; } }
4、测试
4.1 查询列表
@ApiOperation("积分等级列表") @GetMapping("/list") public R listAll(){ List<IntegralGrade> list = integralGradeService.list(); return R.ok().data("list", list); }
4.2 修改
@ApiOperation(value = "根据id删除积分等级", notes="逻辑删除") @DeleteMapping("/remove/{id}") public R removeById( @ApiParam(value = "数据id", required = true, example = "1") @PathVariable Long id){ boolean result = integralGradeService.removeById(id); if(result){ return R.ok().message("删除成功"); }else{ return R.error().message("删除失败"); } }
4.3 新增
@ApiOperation("新增积分等级") @PostMapping("/save") public R save( @ApiParam(value = "积分等级对象", required = true) @RequestBody IntegralGrade integralGrade){ boolean result = integralGradeService.save(integralGrade); if (result) { return R.ok().message("保存成功"); } else { return R.error().message("保存失败"); } }
4.4 查询单个
@ApiOperation("根据id获取积分等级") @GetMapping("/get/{id}") public R getById( @ApiParam(value = "数据id", required = true, example = "1") @PathVariable Long id ){ IntegralGrade integralGrade = integralGradeService.getById(id); if(integralGrade != null){ return R.ok().data("record", integralGrade); }else{ return R.error().message("数据不存在"); } }
posted on 2022-02-28 19:41 betterLearing 阅读(262) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!