restful风格,什么是restful风格?,REST是REpresentational State Transfer的缩写(表述性状态转移),不讲这么官方啦,直接看对比,首先这是咱们很久之前的一个请求:localhost:8080/user/page?currentPage=1?pageSize=5,但是用来咱们的restful风格之后的请求是这样的:localhost:8080/user/page/1/5对比一下,后者是不是特别的简洁呢。
知道咱们restful请求具体是啥样了,如何去实现呢?,其实啊也是特别的简单,用一个@PathVariable的注解就好啦。
对于localhost:8080/user/page/1/5这样一个请求,它的实现是这样的:
/**
* @author shenwang
* @version 1.0
*/
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/page/{currentPage}/{pageSize}")
private List<User> selectPage(@PathVariable Integer currentPage,@PathVariable Integer pageSize){
return userService.selectPage(currentPage,pageSize);
}
}
咱们再回来对比一下这个请求localhost:8080/user/page/1/5
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/page/{currentPage}/{pageSize}")
.........
.........
}
也就是用位置去对应咱们传的参数
restful风格还有一个特点,就是不用方法名去约束请求,而是去用请求的类型去约束请求,我要做查询我Java代码就用@GetMapping,前端使用get请求,我要做添加我后端就用@PostMapping,前端就对应着使用post请求,我后端要做修改 我Java代码就用@PutMapping,前端代码还是用post请求,如果我要做删除,我Java代码就是用@DeleteMapping,前端请求就使用delete请求,总结一下
操作 Java注解 前端请求
查询 @GetMapping get
新增 @PostMapping post
修改 @PutMapping post
删除 @DeleteMapping delete
看着咱们前端请求的所有类型,对应后端:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.mjs.common.pojo.User;
import com.mjs.service.UserService;
/**
* @author shenwang
* @version 1.0
*/
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 查询所有
* @return
*/
@GetMapping
private List<User> selectAll(){
return userService.selectAll();
}
/**
* 新增用户
* @param user
* @return
*/
@PostMapping
private boolean add(@RequestBody User user){
return true;
}
/**
* 修改用户
* @param user
* @return
*/
@PutMapping
private boolean update(@RequestBody User user){
return true;
}
/**
* 根据用户id删除用户
* @param userId
* @return
*/
@DeleteMapping("/{userId}")
private boolean delete(@PathVariable String userId){
return true;
}
}
这样咱们前端请求的可以全是:localhost:8080/user,只要咱们请求类型不用他们就可以请求到咱们不同的方法啦,悟了吗