RESTful: 一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
百度百科RESTFul
## Controller
* GET : 获取所有用户
* @param user
* @param pageable
* @return
*/
@GetMapping
@JsonView(User.UserSimpleView.class)
public List<User> query(User user ,@PageableDefault(page = 1 , size = 10 ,sort ="username,asc") Pageable pageable){
System.out.println(user.toString());
System.out.println(pageable.getPageSize());
System.out.println(pageable.getPageNumber());
System.out.println(pageable.getSort());
User use1 = new User("张山1","123456");
User use2 = new User("张山2","123456");
User use3 = new User("张山3","1234562");
List<User> list = new ArrayList<User>();
list.add(use1);
list.add(use2);
list.add(use3);
return list;
}
/**
* GET :获取 id 用户
* id:\\d+ : 只接受数字
* @param id
* @return
*/
@GetMapping( value="/{id:\\d+}")
@JsonView(User.UserDetailView.class)
public User getInfo(@PathVariable Integer id) {
System.out.println(id);
User user = new User(id,"idUsername","idPassword");
return user;
}
/**
* POST : 添加 User
* @param user
* @return
*/
@PostMapping
public User add(@Valid User user ,BindingResult errors) {
/**
* 如果,我们需要数据在没有通过验证的情况下,
* 也进入到方法体中来,记录相应的日志。
* @Valid 和 BindingResult 需要一起使用
*/
if( errors.hasErrors()) {
/*
循环打印 错误信息
*/
errors.getAllErrors().stream()
.forEach(error -> System.out.println(error.getDefaultMessage()));
}
user.setId(1);
Date date = new Date();
user.setBirthday(date);
System.out.println(user.toString());
return user;
}
@PutMapping( value="/{id:\\d+}")
public User edit(@Valid User user , BindingResult errors) {
System.out.println("User edit:");
if( errors.hasErrors()) {
/*
循环打印 错误信息
*/
errors.getAllErrors().stream()
.forEach(error -> {
FieldError fieldError = (FieldError)error;
String message = fieldError.getField()+ ":" + error.getDefaultMessage();
System.out.println(message);
});
}
// Date date = new Date(LocalDateTime.now() //获取当前时间
// .plusYears(1) //加一年
// .atZone(ZoneId.systemDefault()) //系统默认时区
// .toInstant().toEpochMilli()); //毫秒
// user.setBirthday(date);
System.out.println(user.toString());
return user;
}
@DeleteMapping( value = "/{id}")
public void remove(@PathVariable Integer id) {
System.out.println("remove:"+id);
}