SpringBoot-4

本文介绍了RESTful接口风格在应用程序API设计中的应用,详细展示了如何使用Spring MVC实现RESTful接口,包括GET、POST、PUT、DELETE四种HTTP方法。同时,通过一个用户插入操作的案例,演示了从项目配置、实体类创建、DAO层和服务层的编写到Controller的实现。最后,利用ApiPost工具进行了接口测试,验证了RESTful风格接口的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不懂代码的孩子

谢谢大佬

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值