Restful设计风格在当前前后端分离的情况下使用的还是蛮多的,只是开发的时候可能更侧重于编码,对于一些基本的概念理论没有去更多的了解,本文就这部分内容做一个简单的梳理
什么是Rest
REST是REpresentational State Transfer表述性状态转移 的首字母缩写。它是分布式超媒体系统的架构风格,与任何其他架构风格一样,REST也有自己的6个引导约束,如果接口需要被称为RESTful,则必须满足这些约束。这些原则如下:
-
客户端 - 服务器 - 通过将用户接口问题与数据存储问题分开,我们通过简化服务器组件来提高跨多个平台的用户接口的可移植性并提高可伸缩性。
-
无状态- 从客户端到服务器的每个请求都必须包含理解请求所需的所有信息,并且不能利用服务器上任何存储的上下文。因此,会话状态完全保留在客户端上。
-
可缓存 - 缓存约束要求将对请求的响应中的数据隐式或显式标记为可缓存或不可缓存。如果响应是可缓存的,则客户端缓存有权重用该响应数据以用于以后的等效请求。
-
统一接口 - 通过将通用性的软件工程原理应用于组件接口,简化了整个系统架构,提高了交互的可见性。为了获得统一的接口,需要多个架构约束来指导组件的行为。REST由四个接口约束定义:资源识别; 通过陈述来处理资源; 自我描述性的信息; 并且,超媒体作为应用程序状态的引擎。
-
分层系统 - 分层系统风格允许通过约束组件行为来使体系结构由分层层组成,这样每个组件都不能“看到”超出与它们交互的直接层。
按需编码(可选) - REST允许通过以小程序或脚本的形式下载和执行代码来扩展客户端功能。这通过减少预先实现所需的功能数量来简化客户端
资源
在REST API的上下文中,当生成多个相同的请求与生成单个请求具有相同的效果时 然后该REST API称为幂等
如果您在设计API时遵循REST原则,那么您将拥有用于GET,PUT,DELETE,HEAD,OPTIONS和TRACE HTTP方法的自动幂等REST API。只有POSTAPI不是幂等的。
POST 不是幂等的,GET,PUT,DELETE,HEAD,OPTIONS和TRACE是幂等。
百度百科
RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源
在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了
Restful的网址:http://restful.p2hp.com/
Rest Url数据
@GetMapping("/demo/{id}")
@ResponseBody
public String getParam(@PathVariable String id){
return id;
}
SpringMVC请求资源路径的URL可以通过形式指定动态的URL,动态URL中的这个可变参数的值可以直接注入到方法对应的参数中。
通过@PathVariable注解指定参数变量var获取请求url中数据如果不加@PathVariable的话前台传过来的id就获取不到
评论区