REST
定义:REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
架构约束:
统一接口:有统一的资源管理
C/S架构
无状态:用户状态主要在客户端,服务端没有状态
可缓存
分层系统
按需代码
三个基本方面:
资源识别:URI
资源操作:GET、PUT、POST、DELETE
自描述消息:Content-Type、MIME-Type、Media Type
Spring mvc对REST的支持
驱动注解:
定义:
@Controller:应用控制器注解声明,Spring模式注解
@RestController:等效于@Controller+@ResponseBody(组合注解,去源码看)
映射:
@RequestMapping:应用控制器映射注解声明
@*Mapping:例如@GetMapping等效于@RequestMapping(method = RequestMethod.GET)
请求:
@RequestParam:获取请求参数
@RequestHeader:获取请求头
@CookieValue:获取Cookie值
@RequestBody:获取完整请求主题内容
@PathVariable:获取请求路径变量
RequestEntity:获取请求内容(包括请求主体和请求头)
响应:
@ResponseBody:响应主体注解声明
ResponseEntity:相应内容(包括响应主体和响应头)
ResponseCookie:响应Cookie内容
拦截:
@RestControllerAdvice:@RestController注解切面通知
HandlerInterceptor:处理方法拦截器
跨域:
@CrossOrigin:资源跨域声明注解
CrosFilter:资源跨域拦截器
WebMvcConfigurer#addC