springboot系列11,REST

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#addCrosMappings:注册资源跨域信息

REST内容协商:

核心组件:

内容协商管理器:ContentNegotiationManager(ContentNegotiationStrategy控制策略)

媒体类型:MediaType(HTTP消息媒体类型,如text/html)

消费媒体类型:@RequestMapping#consumes(请求头Content-Type媒体类型映射)

生产媒体类型:@RequestMapping#produces(响应头Conteng-Type媒体类型映射)

HTTP消息转换器:HttpMessageConverter(用于反序列化HTTP请求或序列化响应)

Web MVC配置器:WebMvcConfigurer(配置REST相关组件)

处理方法:HandlerMethod(@RequestMapping标注的方法)

处理方法参数解析器:HandlerMethodArgumentResolver(用于HTTP请求中解析HandlerMethod参数内容)

处理方法返回值解析器:HandlerMethodReturnValueHandler:用于HandlerMethod返回

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值