美文网首页
day03-mallServer-优化登陆接口

day03-mallServer-优化登陆接口

作者: 请叫我平爷 | 来源:发表于2022-04-09 09:14 被阅读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

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

    相关文章

      网友评论

          本文标题:day03-mallServer-优化登陆接口

          本文链接:https://www.haomeiwen.com/subject/qbdysrtx.html