【平台开发】— 7.重构-增加结果统一处理
2021/4/23 18:25:31
本文主要是介绍【平台开发】— 7.重构-增加结果统一处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前面实现了一个简单的登录,接下来开发的是项目管理功能。
但是在写完项目列表接口后,发现了重复代码的情况,这时候就需要重构下代码了。
一、代码冗余
首先看下之前写的UserController
和新写的ProjectController
中的2个方法:
1. UserController
@PostMapping("/login") public Maplogin(@RequestBody UserRequest user) throws Exception { String username = user.getUsername(); String password = user.getPassword(); Mapresult = new HashMap<>(); MapuserToken = new HashMap<>(); Mapmsg = new HashMap<>(); if (userService.isUserExist(username, password)) { userToken.put("token","admin-token"); result.put("code", 20000); result.put("data", userToken); } else { msg.put("msg", "用户或密码错误"); result.put("code", 50000); result.put("data", msg); } return result; }
2. ProjectController
@GetMapping("/getProjectList") public MapprojectList() throws Exception { ListprojectList = projectService.getProjectList(); Mapresult = new HashMap<>(); result.put("code", 20000); result.put("data", projectList); return result; }
问题就是我在对于返回结果的处理上,每次都要设置code,data这样的值,后面还有其他类似的方法,如果都要写一次那也太不科学了。
二、增加Result类
其实我们做接口测试也都知道,通常接口返回的信息都是这样居多:
{ "code": 20000, "message": "", "data": { "token": "admin-token" } }
那我就以这个为目的,去将返回结果抽象出来。
创建一个Result类去统一处理可能出现的一些返回形式,类里提供了多个构造方法,可以根据不同需求进行传参。
package com.mock.platform.common; public class Result { private static int SUCCESS_CODE = 20000; private static int FAIL_CODE = 30000; private int code; private String message; private Object data; private Result(int code, String message, Object data) { this.code = code; this.message = message; this.data = data; } public static Result success() { return new Result(SUCCESS_CODE,null,null); } public static Result success(Object data) { return new Result(SUCCESS_CODE,"",data); } public static Result fail(String message) { return new Result(FAIL_CODE,message,null); } public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } }
三、重构
那Result
已经准备好了,现在可以重构login
方法了(注释部分是老代码):
// @PostMapping("/login") // public Maplogin(@RequestBody UserRequest user) throws Exception { // String username = user.getUsername(); // String password = user.getPassword(); // Mapresult = new HashMap<>(); // MapuserToken = new HashMap<>(); // Mapmsg = new HashMap<>(); // if (userService.isUserExist(username, password)) { // userToken.put("token","admin-token"); // result.put("code", 20000); // result.put("data", userToken); // } else { // msg.put("msg", "用户或密码错误"); // result.put("code", 50000); // result.put("data", msg); // } // return result; // } @PostMapping("/login") public Result login(@RequestBody UserRequest user) throws Exception { String username = user.getUsername(); String password = user.getPassword(); MapuserToken = new HashMap<>(); if (userService.isUserExist(username, password)) { userToken.put("token","admin-token"); return Result.success(userToken); } else { return Result.fail("用户名或密码错误"); } }
请求下接口,验证一下。
用户名密码都正确的情况:
密码不对的情况:
完成,可以探索下一个坑了。
这篇关于【平台开发】— 7.重构-增加结果统一处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25Java对接阿里云智能语音服务资料详解
- 2024-11-25JAVA副业资料:新手入门及初级提升指南
- 2024-11-25Java副业资料:入门到实践的全面指南
- 2024-11-25Springboot应用的多环境打包项目实战
- 2024-11-25SpringBoot应用的生产发布项目实战入门教程
- 2024-11-25Viite多环境配置项目实战:新手入门教程
- 2024-11-25Vite多环境配置项目实战入门教程