1.什么是REST?
rest全称:Representational State Transfer (表述性状态转移?)
简洁的来说,REST就是将资源的状态以最合适客户端或服务端的形式从服务端转移到服务端(或者相反)
在REST中,资源是通过URL进行识别和定位。REST的行为是通过HTTP方法来定义的,具体来说:
Create : POST
Read:GET
Update:PUT或PATCH(局部更新)
Delete:DELETE
2.Spring是如何支持REST的
1.控制器可以处理所有的Http方法,包含四个主要的REST方法:GET,POST,PUT,DELETE;
2.借助@PathVariable注解,控制器能够处理参数化的url(将变量输入作为URL的一部分);
3.借助Spring的视图和视图解析器,资源能够以多种方式进行表述,包括将模型数据渲染为xml,json,atom以及RSS的View实现;
4.可以使用ContentNegotiatingViewResolver来选择最合适客户端的表述;
5.借助@ResponseBody注解和各种HttpMethodConverter实现,能够替换基于视图的渲染方式;
6.类似地,@RequsetBody注解以及各种HttpMethodConverter实现可以将传入的Http数据转化为传入控制器处理方法的Java对象;
7.借助RestTemplate,Spring应用能够方便的使用REST资源
当然Spring4.0可以轻松使用注解构建一个REST客户端
在控制器类上使用@RestController注解,Spring将会为该控制器的所有处理方法应用消息转换功能。这样就不必在每个方法上加上ResponseBody注解类。
自定义出参对象代替ResponseEntity响应客户端
使用@ControllerAdvice注解定义一个增强的全局错误处理器来替换在每个方法上的@ExceptionHandler注解来处理错误信息
利用@PutMapping,@PostMapping,@DeleteMapping,@GetMapping注解来简化对RestTemple的操作
一个典型的REST资源如下: