目录

  • 使用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风格的标志。