接口文档:通俗的讲,接口文档能告诉开发者接口能返回的数据,以及为了获取这些数据,开发者
需要输入什么样的数据,请求哪个接口(即规范)
为什么使用接口文档:
1、项目开发过程中前后端工程师有一个统一的文件进行沟通交流开发
2、项目维护中或者项目人员更迭,方便后期人员查看、维护
3、测试人员验证检查接口是否正确
环境搭建:
1.准备数据库(big_event)
2.创建SpringBoot工程,引入依赖(web、mybatis、mysql驱动、lombok)
3.创建包结构,准备实体类
注册:
1.Usercontroller
package com.rzl.controller;
import com.rzl.pojo.Result;
import com.rzl.pojo.User;
import com.rzl.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;@PostMapping("/register")public Result register(String username, String password) {//查询对象User u = userService.findByUserName(username);if (u == null) {//没有占用//注册userService.register(username, password);return Result.success();} else {//占用return Result.error("用户名已被占用");}}
}
2.User实体类
package com.rzl.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;import java.time.LocalDateTime;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {private Integer id;//主键IDprivate String username;//用户名private String password;//密码private String nickname;//昵称private String email;//邮箱private String userPic;//用户头像地址private LocalDateTime createTime;//创建时间private LocalDateTime updateTime;//更新时间
}
3.UserService接口
package com.rzl.service;
import com.rzl.pojo.User;
public interface UserService {//根据用户名查询用户User findByUserName(String username);//注册void register(String username, String password);
}
4.UserServiceImpl实现类
package com.rzl.service.impl;
import com.rzl.mapper.UserMapper;
import com.rzl.pojo.User;
import com.rzl.service.UserService;
import com.rzl.utils.Md5Util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic User findByUserName(String username) {User u = userMapper.findByName(username);return u;}@Overridepublic void register(String username, String password) {//密码加密String md5String = Md5Util.getMD5String(password);//添加userMapper.add(username,md5String);}
}
5.UserMapper接口
package com.rzl.mapper;
import com.rzl.pojo.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface UserMapper {//根据用户名查询用户@Select("select *from user where username = #{username}")User findByName(String username);//添加@Insert("insert into user(username,password,create_time,update_time)" +" values(#{username},#{md5String},now(),now())")void add(String username, String md5String);
}
6.数据库
-- 创建数据库
create database big_event;-- 使用数据库
use big_event;用户表
create table user (id int unsigned primary key auto_increment comment 'ID',username varchar(20) not null unique comment '用户名',password varchar(32) comment '密码',nickname varchar(10) default '' comment '昵称',email varchar(128) default '' comment '邮箱',user_pic varchar(128) default '' comment '头像',create_time datetime not null comment '创建时间',update_time datetime not null comment '修改时间'
) comment '用户表';
7.使用postman,可得结果
登录:
Usercontroller
@PostMapping("/login")public Result<String> login(@Pattern(regexp = "^\\S{5,16}$") String username, @Pattern(regexp = "^\\S{5,16}$")String password) {// 根据用户名查询用户User loginUser = userService.findByUserName(username);//判断该用户是否存在if (loginUser == null) {return Result.error("用户名错误");}//判断密码是否正确 loginUser对象中的password是密文if (Md5Util.getMD5String(password).equals(loginUser.getPassword())) {//登陆成功return Result.success("jwt token令牌..");}return Result.error("密码错误");}
使用postman
登录成功:
用户名错误:
密码错误: