1.接口的架构风格
1.该风格值得是应用程序的API风格。就是url地址的不同实现方式。
-
指访问servlet,以及controller的url,调用其他程序的函数
2.常见的风格:
restful风格更简洁,和yml和properties文件类型似的,用哪种都是可以的。
第一种:最基本的风格。
第二种:restful,就是接口怎么写合适。只是一种风格,不是标准,客户端和服务器交互时的架构理念。
-
用/代替资源的名称,但是位置不能颠倒
1.1使用Restful风格
1.@RequestMapping是下面的复合组合。
@GetMapping("/insert") @PostMapping("/post") @PutMapping("/inset") @DeleteMapping("/delete")
2.@GetMapping("/insert/{id}/{name}")
@PathVariable(value ="id")指定要传入的参数
1.常见的四种提交方式
第一种:下面这个只需要改metod的请求方式就可以切换:
@RequestMapping(value = "/insert/restful",method = RequestMethod.GET)
第二种:
@GetMapping("/insert")
@PostMapping("/post")
@PutMapping("/inset")
@DeleteMapping("/delete")
2.使用Restful风格插入一条数据
@GetMapping("/insert/{id}/{name}")
public int insertUser2(@PathVariable(value ="id") int id,@PathVariable(value = "name") String name){
User user=new User();
user.setId(id);
user.setName(name);
user.setAge(15);
user.setSex("男");
user.setPassword("123456");
return userService.insertUser(user);
}
访问:
http://localhost:8080/insert/5/zhangsan
1.2ApiPost的简单使用
1.下载地址
Apipost-API 文档、设计、调试、自动化测试一体化协作平台
2.ApiPost基本使用
1.3Restful风格测试
1.案例:实现用户的插入操作
第一步:创建项目,配置pom和配置文件
-
导入mybatis和mysql驱动的依赖
配置pom:
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
配置配置文件:
# 应用名称
spring.application.name=demo
# 应用服务 WEB 访问端口
server.port=8080
# 数据库驱动:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据源名称
spring.datasource.name=test
# 数据库连接地址
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useSSL=false
# 数据库用户名&密码:
spring.datasource.username=root
spring.datasource.password=root
#下面这些内容是为了让MyBatis映射
#指定Mybatis的Mapper文件
mybatis.mapper-locations=classpath:mappers/*xml
第二步:创建一个实体类
public class User {
private int id;
private String name;
private int age;
private String sex;
private String password;
public User() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
", password='" + password + '\'' +
'}';
}
}
第三步:编写dao层文件
UserDao:
@Mapper
public interface UserDao {
public int insert(User user);
}
UserDao.xml
<?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">
<!--指定dao文件所在的位置-->
<mapper namespace="com.example.demo.dao.UserDao">
<!--定义sql语句-->
<!--
id指定的是dao层指定的方法的名称
resultType=""指定返回的类型,比如User实体指定的类
#{id}是dao层传入的参数
-->
<insert id="insert" parameterType="com.example.demo.entity.User">
insert into user(id, name, age, sex, password) values (#{id},#{name},#{age},#{sex},#{password})
</insert>
</mapper>
第四步:编写Service层
public interface UserService {
public int insert(User user);
}
@Service
public class UserServiceImpl implements UserService{
@Resource
private UserDao userDao;
@Override
public int insert(User user) {
return userDao.insert(user);
}
}
第五步:编写controller
-
insert实现的是非restful风格的
-
insert2实现的是restful风格的
@Resource
private UserService userService;
@GetMapping("/insert")
public int insert(int id,String name){
User user=new User();
user.setAge(15);
user.setPassword("121");
user.setSex("男");
return userService.insert(user);
}
@GetMapping("/insert2/{id}/{name}")
public int insert2(@PathVariable(value = "id") int id,@PathVariable(value = "name") String name){
User user=new User();
user.setAge(15);
user.setPassword("121");
user.setSex("男");
return userService.insert(user);
}
ApiPost测试:
-
localhost:8080/insert?id=6&name=zhangsan
-
localhost:8080/insert2/7/zhangsan