day03-mallServer-优化登陆接口
2022-04-09 本文已影响0人
请叫我平爷
我们的入参是JSON格式的,出参是字符串,而且我们的程序用的是map来接入,这很不优雅
如果出参,入参我们都用bean对象来承接的话,是不是优雅多了?
创建LoginReqBean
image.png
package com.mi.mallserver.bean;
public class LoginReqBean {
private String name;
private String pwd;
}
创建LoginResBean
image.png
package com.mi.mallserver.bean;
public class LoginResBean {
private String name;
private String age;
private String sex;
}
再修改登录接口
image.png@PostMapping("/login")
public LoginResBean login(@RequestBody LoginReqBean reqBean){
System.out.println("name:"+reqBean.getName() + " pwd:"+reqBean.getPwd());
LoginResBean resBean = new LoginResBean();
resBean.setName(reqBean.getName());
resBean.setAge("20");
resBean.setSex("男");
return resBean;
}
重启服务,然后继续用postMan调试
image.png
是不是优雅多了?
对于bean每次都要写get、set方法,有没有办法避免呢?
自然是有的
首先我们要去pom.xml中添加一个依赖包
image.png
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
然后引入该依赖包,就能使用啦
image.png使用方法
image.png
代码量瞬间就降下来了
LoginResBean赶紧也改一下
image.png
可是如果想对出参和入参进行统一的管理呢?
我们新建一个请求的管理类BaseRequest
image.pngpackage com.mi.mallserver.base;
import lombok.Data;
@Data
public class BaseRequest<T> {
//时间戳
private String seqNo;
//系统
private String sys;
//版本号
private String ver;
//真正的请求参数
private T req;
}
同理,对于出参也要处理下
image.png@Data
public class BaseResponse<T> {
//时间戳
private String seqNo;
//返回参数
private Integer code;
//返回的描述符
private String desc;
//真正的请求参数
private T data;
}
修改登录接口
image.png @PostMapping("/login")
public BaseResponse<LoginResBean> login(@RequestBody BaseRequest<LoginReqBean> reqBean){
System.out.println("seqNo:"+reqBean.getSeqNo()+" sys:"+reqBean.getSys()+" ver:"+reqBean.getVer());
System.out.println("name:"+reqBean.getReq().getName() + " pwd:"+reqBean.getReq().getPwd());
LoginResBean resBean = new LoginResBean();
resBean.setName(reqBean.getReq().getName());
resBean.setAge("20");
resBean.setSex("男");
BaseResponse<LoginResBean> response = new BaseResponse<>();
response.setSeqNo(reqBean.getSeqNo());
response.setCode(1000);
response.setDesc("成功");
response.setData(resBean);
return response;
}
重启服务器,然后请求试下看行不行
image.pngimage.png我们发现请求失败,我们改了入参的格式,这里肯定也要跟着修改呀,达到了我们需要统一管理的目的
这样一来,无论出参、入参,都在固定的格式下面