SpringBoot中的RestFul规范

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35706771/article/details/82955775

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);
	}

猜你喜欢

转载自blog.csdn.net/qq_35706771/article/details/82955775