持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情
前言
先前我们利用SpringBoot
框架搭建了一个十分简易的登入系统,今天我们来尝试一下,通过SpringBoot
来编写API。
实践
获取所有用户,对应的就是查询数据库user表
中的所有数据。
首先我们再我们的UserService
中定义好我们的方法(获取所有用户)。
public interfaceUserService {
List<UserBean> getAllUsers();
}
我们是通过SQL语句查询数据库来得到所有的用户数据的,所以接下里我们就来编写我们的SQL语句,我们需要先在 UserMapper.java
方法中定义好我们的数据。
public interface UserMapper {
List<UserBean> getAllUsers();
}
然后在 UserMapper.xml
中编写实际的SQL查询语句
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "<http://mybatis.org/dtd/mybatis-3-mapper.dtd>" >
<mapper namespace="com.li.test.mapper.UserMapper">
<select id="getAllUsers" resultType="com.li.test.bean.UserBean">
SELECT * FROM user
</select>
</mapper>
这里id
就是指我们在UserMapper.java
中定义的方法名,resultType
就是指返回的类型,而这边我们需要返回的是List<UserBean>
,但是我们还是只需要定义UserBean
的类型即可,不要管List
,至于为什么,这里就先遗留一下,日后再去展开分析学习。
SQL语句写好了以后,我们就要去实现具体的业务逻辑了,也就是service的具体实现类,这里为UserServiceImpl.java
。
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<UserBean> getAllUsers() {
return userMapper.getAllUsers();
}
}
其实就是调用我们刚刚在userMapper
中编写的getAllUsers()
方法来具体实现getAllUsers()
方法。
接着我们先建一个 UserController
来真正调用处理 UserService
中的方法。
@RestController
public class UserController {
@Autowired
UserService userService;
@RequestMapping("/hw")
public String home() {
return "Hello World!";
}
@GetMapping("/users")
public List<UserBean> getAllUsers() {
return userService.getAllUsers();
}
}
不知你有没有发现,这里与别的Controller
有一点不用的是,这里用的是@RestController
注解,而我们之前都是使用@Controller
注解,这里就可以具体展开分析学习一下,但是我们是刚入门,先将Demo
跑通先,日后回头学。现在只需要知道,当我们需要输出数据,也就是开发API接口时,我们需要使用@RestController
注解。
OK,到了这里,我们已经编写好所有数据了,接下来就需要检测一下我们的代码是否正确。
通过编写测试用例来检查一下我们的代码是否编写正确,测试的就是 UserService
的 getAllUsers()
方法,我们尝试拿到List<UserBean>
,然后通过日志输出其用户名与密码。
@RunWith(SpringRunner.class)
@SpringBootTest
class TestApplicationTests {
@Autowired
UserService userService;
@Test
void contextLoads() {
System.out.println("*************** test UserController *************");
List<UserBean> userList = userService.getAllUsers();
for (int i = 0; i < userList.size(); i++) {
userList.get(i).getName();
System.out.println(userList.get(i).getName() + " " + userList.get(i).getPassword());
}
}
}
运行测试案例TestApplicationTests
。
输出:
*************** test UserController *************
stephen 123456
taylor a123456
li 123456
很完美的达到预期,接下来我们运行项目,然后通过PostMan
工具来访问接口http://127.0.0.1:8080/users
,查看所有用户。
结果如下:
总结
今天我们尝试利用SpringBoot
来开发API接口,我们前端人员终于可以自己给自己写接口啦,哈哈。接下来将继续尝试利用SpringBoot
框架来开发RESTful API。