目录
- 使用Spring Boot实现的RESTful风格的简单用户管理系统
- RESTful风格
- 1.创建用户实体类
- 2.创建UserController控制器类
- 3.配置应用程序入口类
- 4.启动应用程序并测试
- 5.疑问
- @RestController是不是Restfulf风格
- @GetMaping是不是RESTful风格
使用Spring Boot实现的RESTful风格的简单用户管理系统
RESTful风格
RESTful架构风格是一种基于HTTP协议的Web服务架构风格,它强调使用HTTP协议的请求方法来表示资源的操作,例如GET用于获取资源,POST用于创建资源,PUT用于更新资源,DELETE用于删除资源等。
虽然@GetMapping注解仅仅用于处理HTTP GET请求,但它可以被用于RESTful风格的Web服务的控制器中,来表示获取资源的操作。
1.创建用户实体类
@Data
public class User {
private Long id;
private String name;
private Integer age;
//使用@Data 省略getter和setter方法
}
2.创建UserController控制器类
@RestController
@RequestMapping("/user")
public class UserController {
private List<User> userList = new ArrayList<>();
@GetMapping
public List<User> getUsers() {
return userList;
}
@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
for (User user : userList) {
if (user.getId().equals(id)) {
return user;
}
}
return null;
}
@PostMapping
public void createUser(@RequestBody User user) {
userList.add(user);
}
@PutMapping("/{id}")
public void updateUser(@PathVariable Long id, @RequestBody User user) {
for (User u : userList) {
if (u.getId().equals(id)) {
u.setName(user.getName());
u.setAge(user.getAge());
break;
}
}
}
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Long id) {
userList.removeIf(user -> user.getId().equals(id));
}
}
3.配置应用程序入口类
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
4.启动应用程序并测试
可以使用Postman等工具测试RESTful接口的各种操作,例如:
GET /user:获取所有用户列表
GET /user/123:获取id为123的用户
POST /user:创建一个新用户
PUT /user/123:更新id为123的用户信息
DELETE /user/123:删除id为123的用户
5.疑问
@RestController是不是Restfulf风格
@RestController是Spring MVC中的注解,它是@Controller和@ResponseBody的结合体,表示一个类是用于RESTful风格的Web服务的控制器,可以处理HTTP请求并返回JSON、XML等格式的响应数据。因此,可以说@RestController是RESTful风格的。但是,要注意的是,只有使用@RestController注解的控制器并不一定是真正的RESTful,还需要遵循RESTful架构的一些规范和原则。
@RestController注解相当于在一个类上同时添加@Controller和@ResponseBody注解,因此它可以将请求的数据转换为JSON或XML格式的响应数据,并直接写入HTTP响应中。
@RestController注解中的方法可以处理多种HTTP请求方法,例如GET、POST、PUT、DELETE等。它还可以通过@RequestParam、@PathVariable、@RequestBody等注解来接收请求参数,并通过返回值来返回响应数据。
@RestController的使用可以大大简化Spring MVC的开发,使开发人员更加专注于业务逻辑的实现,而不需要关注太多与HTTP请求和响应相关的细节。
@GetMaping是不是RESTful风格
@GetMapping注解是Spring MVC中用于处理HTTP GET请求的注解,它并不是RESTful风格的标志。