axios几种请求类型的格式

  Axios 是一个基于 Promise 的 HTTP 客户端,广泛用于浏览器和 Node.js 中发送 HTTP 请求。它支持多种请求格式,包括 GETPOSTPUTDELETE 等。也叫RESTful

目录

一、axios几种请求类型的格式

1、get请求

2、post请求

3、put请求

4、delete请求

二、通用请求格式


一、axios几种请求类型的格式

1、get请求

适用场景:查询一张表的某行/所有行数据。

相关的sql语句:select

举例:查询全部挂号记录。

2、post请求

应用场景:给某一张表添加一行数据。

相关的sql语句:insert 

举例:注册一个用户。

3、put请求

应用场景:完全修改某张表的某一行数据。

相关的sql语句:update

举例:更新用户的信息(无论几个字段发生了变化,我们最终都会提交用户的全部信息,因此是完全更新某一行,使用put请求。)

4、delete请求

应用场景:删除某行数据。

5、patch请求

应用场景:修改某张表的某一行的几个字段(不是全部字段)。

相关的sql语句:update

举例:更新某个发票记录的状态。

举例:

PATCH 请求通常用于部分更新资源,客户端只需要传递需要修改的字段,而不是完整的资源数据。以下是关于如何发送 PATCH 请求以及后端如何使用 @PatchMapping 注解接收参数的详细说明。


1. 发送 PATCH 请求

PATCH 请求的参数通常以 JSON 对象 的形式放在请求体中。

示例场景

假设有一个用户资源,数据结构如下:

json

换行复制代码

1{
2  "id": 1,
3  "name": "张三",
4  "age": 25,
5  "email": "zhangsan@example.com"
6}

客户端需要更新用户的 name 和 email,发送 PATCH 请求:

http

换行复制代码

1PATCH /users/1

请求体:

json

换行复制代码

1{
2  "name": "李四",
3  "email": "lisi@example.com"
4}

2. 后端接收 PATCH 请求

在 Spring Boot 中,可以使用 @PatchMapping 注解来接收 PATCH 请求,并通过 @RequestBody 注解将请求体中的 JSON 数据映射到 Java 对象。

步骤

  1. 定义 DTO: 创建一个 DTO(Data Transfer Object)类,用于接收客户端传递的部分更新字段。

    java

    换行复制代码

    1public class UserUpdateDTO {
    2    private String name;
    3    private String email;
    4
    5    // Getter 和 Setter
    6    public String getName() {
    7        return name;
    8    }
    9
    10    public void setName(String name) {
    11        this.name = name;
    12    }
    13
    14    public String getEmail() {
    15        return email;
    16    }
    17
    18    public void setEmail(String email) {
    19        this.email = email;
    20    }
    21}
  2. 编写 Controller: 使用 @PatchMapping 注解定义接口,并通过 @PathVariable 获取资源标识符(如 id),通过 @RequestBody 接收请求体中的 JSON 数据。

    java

    换行复制代码

    1@RestController
    2@RequestMapping("/users")
    3public class UserController {
    4
    5    @Autowired
    6    private UserService userService;
    7
    8    @PatchMapping("/{id}")
    9    public ResponseEntity<String> updateUser(@PathVariable Long id, @RequestBody UserUpdateDTO userUpdateDTO) {
    10        // 调用服务层更新用户信息
    11        userService.updateUser(id, userUpdateDTO);
    12        return ResponseEntity.ok("用户信息更新成功");
    13    }
    14}
  3. 编写 Service: 在 Service 层中,根据 id 查询目标资源,并更新指定的字段。

    java

    换行复制代码

    1@Service
    2public class UserService {
    3
    4    @Autowired
    5    private UserRepository userRepository;
    6
    7    public void updateUser(Long id, UserUpdateDTO userUpdateDTO) {
    8        // 查询用户实体
    9        User user = userRepository.findById(id)
    10            .orElseThrow(() -> new RuntimeException("用户不存在"));
    11
    12        // 更新字段
    13        if (userUpdateDTO.getName() != null) {
    14            user.setName(userUpdateDTO.getName());
    15        }
    16        if (userUpdateDTO.getEmail() != null) {
    17            user.setEmail(userUpdateDTO.getEmail());
    18        }
    19
    20        // 保存更新
    21        userRepository.save(user);
    22    }
    23}

3. 完整流程

  1. 客户端发送 PATCH 请求,携带需要更新的字段(如 name 和 email)。
  2. 后端通过 @PatchMapping 接收请求,将请求体中的 JSON 数据映射到 DTO 对象。
  3. 在 Service 层中,根据 id 查询目标资源,并更新指定的字段。
  4. 返回更新成功的响应。

4. 通俗易懂的比喻

  • PATCH 请求:就像你有一本书,你只需要修改其中的某一页内容,而不是替换整本书。
  • @PatchMapping:后端像是一个图书管理员,收到你的修改请求后,找到这本书,并更新你指定的那一页。

5. 总结

  • 客户端
    • 使用 PATCH 请求,将需要更新的字段以 JSON 对象的形式放在请求体中。
  • 后端
    • 使用 @PatchMapping 定义接口。
    • 使用 @PathVariable 获取资源标识符(如 id)。
    • 使用 @RequestBody 将请求体中的 JSON 数据映射到 DTO 对象。
    • 在 Service 层中更新指定的字段。

通过这种方式,可以实现灵活、安全的资源部分更新。

二、通用请求格式

      上面提到的 GETPOSTPUTDELETE 等请求类型,是 RESTful API 风格的典型体现。RESTful 是一种基于 HTTP 协议的 API 设计风格,强调使用 HTTP 方法(GET、POST、PUT、DELETE 等)来对资源进行操作,并通过 URL 和 HTTP 状态码来表达操作结果。

以上就是axios几种请求的格式,我们在项目中可能会用到。

喜欢本篇文章的话,留下个关注吧~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值