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.png
package 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.png

我们发现请求失败,我们改了入参的格式,这里肯定也要跟着修改呀,达到了我们需要统一管理的目的

image.png

这样一来,无论出参、入参,都在固定的格式下面

上一篇下一篇

猜你喜欢

热点阅读