美文网首页
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-优化登陆接口

    我们的入参是JSON格式的,出参是字符串,而且我们的程序用的是map来接入,这很不优雅 如果出参,入参我们都用be...

  • 钉钉设计文档

    钉钉开发设计文档 接口地址 1.后台登陆功能 登陆流程图 登陆回调接口GET /login/callback?au...

  • php登陆接口转 Go

    php登陆接口转 Go 转化宗旨: 登陆接口为例进行操作转换 php流程梳理 路由信息: UserControll...

  • 用户操作接口

    登陆 接口地址 获取列表 接口地址 删除 接口地址 批量删除 接口地址 编辑用户 接口地址 添加用户 接口地址

  • 零基础小白(一)分析接口需求设计demo脚本

    准备对游戏App接口进行自动化测试,首先从登陆接口开始,搞定登陆接口自动化设计思路,写个小白demo脚本 步骤1:...

  • 唱吧

    产品细节优化: 1、注册环节:未输入出生日期时,登陆按钮状态提示不明显。优化建议:减弱登陆按钮置灰状态色值,未登陆...

  • 柠檬数据后台接口

    接口: 登陆验证接口: 请求方式:POST发送数据:dataToSend:{usearname: ' admin'...

  • 作业

    请用接口隔离原则优化cache类的设计,画出优化后的类图 接口隔离:

  • 20191114-工作日志

    1、一键分发插件 终于将插件基本功能实现了,接下来的任务是优化,包括: 登录注册、找回密码的接口对接。 登陆后用户...

  • WordPress4.9火车头免登陆发布接口+模块(增强版)下载

    WordPress4.9火车头免登陆发布接口+模块(增强版) 适用于火车头采集器7.6-9.6 优化了验证标题重复...

网友评论

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

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