📅  最后修改于: 2023-12-03 14:47:32.782000             🧑  作者: Mango
在开发过程中,我们经常需要返回一个状态码来表示后端接口的处理结果。其中,状态码 201 Created 的意义是表示请求已成功,并且资源已经被创建。这个状态码通常用于 POST 请求,当我们创建一个新的资源时,服务器会返回 201 Created 状态码和新资源的 URL 地址。本文将介绍如何使用 Spring Boot 返回状态码 201 Created。
在 Spring Boot 中,我们可以使用下面的方式来返回 201 Created 状态码以及新资源的 URL 地址:
@RestController
@RequestMapping("/api")
public class UserController {
@PostMapping("/users")
public ResponseEntity<Void> createUser(@RequestBody User user) {
// 创建用户
User savedUser = userRepository.save(user);
// 构造创建的资源 URL 地址
URI location = ServletUriComponentsBuilder.fromCurrentRequest()
.path("/{id}")
.buildAndExpand(savedUser.getId())
.toUri();
// 返回 201 Created 状态码和资源 URL 地址
return ResponseEntity.created(location).build();
}
}
在上面的代码中,我们使用 @PostMapping
注解指定了 POST 请求的路径为 /api/users
,并且接收一个 User
对象作为参数。在方法体中,我们首先创建用户记录,然后使用 ServletUriComponentsBuilder
构造了创建的资源 URL 地址。最后,我们通过 ResponseEntity.created(location).build()
返回了 201 Created 状态码和资源 URL 地址。
至此,我们就成功地返回了 201 Created 状态码和新资源 URL 地址。如果我们向 /api/users
发送 POST 请求,后端将返回下面的结果:
HTTP/1.1 201 Created
Location: http://localhost:8080/api/users/1
其中,Location
头部包含了新资源的 URL 地址。
本文介绍了如何在 Spring Boot 中返回 201 Created 状态码和资源 URL 地址。我们可以使用 ResponseEntity.created(location).build()
方法构造返回结果,其中 location
参数表示新资源的 URL 地址。在实现中,我们需要引入 ServletUriComponentsBuilder
类来构造 URL 地址。