简单点来说,Rest风格的开发就是让别人不知道你在做什么,以deleteUserById和selectUserById为例:
普通开发:路径 /users/deleteById?Id=666 /users/selectById?Id=666 别人很容易知道你这是在干什么
Rest风格开发: 无论是查还是删 路径都是 /users/1 要依靠行为动作(get或delete)才能知道我们在干什么
- package com.example.restproject.controller;
-
- import com.example.restproject.entity.User;
- import org.springframework.web.bind.annotation.*;
-
- @RestController//@RestController=@Controller+@ResponseBody
- @RequestMapping("users")
- public class UserController {
- /*
- 单个参数的可以把参数加入路径变量,通过控制访问行为让别人不知道我们在干什么 /user/1
- 删 delete
- 查 get
- 多个参数的一般用json封装,@RequestBody接收参数 路径中什么也不显示 /users
- 改 put
- 增 post
- */
- @PostMapping
- //多参数的情况,我们选择用json传送
- public void addUser(@RequestBody User user){
- System.out.println("user:"+user);
- }
-
- @DeleteMapping("/{id}")
- public void deleteUser(@PathVariable int id){
- System.out.println("delete user...");
- }
-
- // @DeleteMapping("/{id}/{password}") /users/1/123 别人真不知道我在干啥
- // public void deleteUser(@PathVariable int id,@PathVariable int password){
- // System.out.println("delete user...");
- // }
-
- @PutMapping
- public void updateUser(@RequestBody User user){
- System.out.println("update user...");
- }
-
- @GetMapping("/{id}")
- //把id加入路径中
- public void selectUser(@PathVariable int id){
- System.out.println("select user...");
- }
- }