Spring Boot电商项目15:用户模块四:注册接口开发;

说明:

(1)本篇博客主要内容:开发注册接口;

(2)本篇博客涉及到的点:

          ● Controller层中发现的错误,我们可以直接返回对应错误的ApiRestResponse;Service层中发现的错误,我们不能直接返回对应错误的ApiRestResponse,而是采用【向上抛异常】的策略来解决这个问题;

          ● mybatis中的一个用法:【<include refid="Base_Column_List"/>】,即使用<include>来引用SQL片段;

          ● 这儿判空时,我们没有使用【userName==null】的方式(因为,有的时候,前端确实传过来了userName,这个userName字符串是个空字符串;那么此时,这种方式就可能出现误判);而是使用的Springframework提供的一个工具【StringUtils.isEmpty(userName)】来判空;

           ● 我们在【Spring Boot电商项目8:数据库设计与项目初始化三:创建Spring Boot项目;使用【mybatis-generator】插件生成实体类、mapper接口、mapper.xml等逆向文件;】中,通过【mybatis-generator】插件生成的方法中,有【userMapper.insertSelective(user)】方法和【insertSelective()】方法;这二者的区别,就是insertSelective()允许插入一个【部分属性有值的,User对象】;

(3)本篇博客尤其需要注意的两点内容:

          ●【非Controller层出现的错误】应该采取向上抛异常的策略来处理;这在【Spring Boot电商项目16:用户模块五:注册接口开发之:自定义异常类;(来为处理【非Controller层出现的错误】做准备;)】中做了详细阐述;

          ● 对于抛出的异常也需要进行处理,以达到返回格式统一和安全这两个目的;这在【Spring Boot电商项目17:用户模块六:注册接口开发之:使用【GlobalExceptionHandler】来全局统一处理异常;(涉及了@ControllerAdvice等注解)】中做了详细阐述;

目录

零:【注册】接口,预先说明;

一:实现注册接口;

 1.在UserController中,创建注册方法:register()方法;

2.在UserService接口中,定义注册的方法:register()方法;

3.在UserServiceImpl实现类中,去实现register()注册方法;

4.在UserMapper接口中,定义根据userName查询用户的方法,并在UserMapper.xml中编写对应的SQL;

(1)在UserMapper接口中,定义根据userName查询用户的方法;

(2)在UserMapper.xml中编写对应的SQL;

二:测试接口;

1.前置的一点说明;

2.使用postman来测试;

(0)在postman创建文件夹和测试用的请求;

(1)测试1:正常的情况;

(2)测试2:用户名为空的情况;

(3)测试3:密码为空的情况;

(4)测试4:密码小于8位;

(5)测试5:用户名重复;


零:【注册】接口,预先说明;

注册接口的接口文档:

同时,在【Spring Boot电商项目12:用户模块一:用户模块介绍;(用户模块的内容概述;用户模块的五个接口的接口文档介绍;)】也说明了注册接口的几个要求,比如:用户名不能为空、密码不能为空、密码不能小于8位,用户名不能重复等;


一:实现注册接口;

 1.在UserController中,创建注册方法:register()方法;

    /**
     * 注册方法
     * @param userName
     * @param password
     * @return
     * @throws ImoocMallException
     */
    @PostMapping("/register")
    @ResponseBody
    public ApiRestResponse register(@RequestParam("userName") String userName,
                                    @RequestParam("password") String password) throws ImoocMallException {
        if (StringUtils.isEmpty(userName)) {//如果用户名为空,直接返回用户名不能为空的信息;
            return ApiRestResponse.error(ImoocMallExceptionEnum.NEED_USER_NAME);
        }
        if (StringUtils.isEmpty(password)) {//如果密码为空,直接返回密码不能为空的信息;
            return ApiRestResponse.error(ImoocMallExceptionEnum.NEED_PASSWORD);
        }
        if (password.length() < 8) {//如果密码长度小于8位,直接返回密码长度不能小于8位的信息;
            return ApiRestResponse.error(ImoocMallExceptionEnum.PASSWORD_TOO_SHORT);
        }

        userService.register(userName, password);
        return ApiRestResponse.success();
    }

说明:

(1)【@RequestParam】注解,有助于我们更好的识别和获取请求中的参数;如有需要,可以参考

      ●【SpringMVC入门与数据绑定5:Spring MVC数据绑定二:Controller接收请求中的参数之:使用【方法参数】接收;(PS:包括get请求时使用的@RequestParam())】通过这篇博客可以看到,【@RequestParam】注解能够帮助获取get请求中的参数;

      ●【

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值