Axios
是一个基于 Promise 的 HTTP 客户端,广泛用于浏览器和 Node.js 中发送 HTTP 请求。它支持多种请求格式,包括GET
、POST
、PUT
、DELETE
等。也叫RESTful
目录
一、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
和PATCH
请求:http
换行复制代码
1PATCH /users/1
请求体:
json
换行复制代码
1{ 2 "name": "李四", 3 "email": "lisi@example.com" 4}
2. 后端接收 PATCH 请求
在 Spring Boot 中,可以使用
@PatchMapping
注解来接收PATCH
请求,并通过@RequestBody
注解将请求体中的 JSON 数据映射到 Java 对象。步骤
定义 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}
编写 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}
编写 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. 完整流程
- 客户端发送
PATCH
请求,携带需要更新的字段(如name
和- 后端通过
@PatchMapping
接收请求,将请求体中的 JSON 数据映射到 DTO 对象。- 在
Service
层中,根据id
查询目标资源,并更新指定的字段。- 返回更新成功的响应。
4. 通俗易懂的比喻
- PATCH 请求:就像你有一本书,你只需要修改其中的某一页内容,而不是替换整本书。
- @PatchMapping:后端像是一个图书管理员,收到你的修改请求后,找到这本书,并更新你指定的那一页。
5. 总结
- 客户端:
- 使用
PATCH
请求,将需要更新的字段以 JSON 对象的形式放在请求体中。- 后端:
- 使用
@PatchMapping
定义接口。- 使用
@PathVariable
获取资源标识符(如id
)。- 使用
@RequestBody
将请求体中的 JSON 数据映射到 DTO 对象。- 在
Service
层中更新指定的字段。通过这种方式,可以实现灵活、安全的资源部分更新。
二、通用请求格式
上面提到的
GET
、POST
、PUT
、DELETE
等请求类型,是 RESTful API 风格的典型体现。RESTful 是一种基于 HTTP 协议的 API 设计风格,强调使用 HTTP 方法(GET、POST、PUT、DELETE 等)来对资源进行操作,并通过 URL 和 HTTP 状态码来表达操作结果。
以上就是axios几种请求的格式,我们在项目中可能会用到。
喜欢本篇文章的话,留下个关注吧~~