什么是RESTful(RESTfule风格又是啥)
什么是RESTful(RESTfule风格又是啥)小编带大家一起来了解一下
什么是RESTful(RESTfule风格又是啥)
什么是REST?
REST(英语:Representational State Transfer,通称REST,含意:描述性情况变换,叙述了一个构架款式的应用系统,例如web应用)。
它是一种软件体系结构风格、设计方案风格,而不是规范,仅仅出示了一组设计原理和约束,它关键用以手机客户端和服务器端互动类的手机软件。根据这一风格设计方案的手机软件能够更介绍,更有层级,更便于完成缓存文件等体制。
它自身并没什么应用性,其核心理念取决于怎样设计方案出合乎REST风格的网线端口。
什么是RESTful?
REST:指的是一组构架约束和标准。考虑这种约束和标准的应用软件或设计方案便是RESTful。
RESTful的特点
資源(Resources):互联网上的一个实体线,也就是说是互联网上的一个实际信息内容。它能够是一段文字、一张图片、一首歌曲、一种服务项目,总而言之便是一个实际的存有。可以用一个URI(统一資源精准定位符)偏向它,每个資源相匹配一个特点的URI。要获得这一資源,浏览它的URI就可以,因而URI即是每一个資源的独一无二的鉴别符。
主要表现层(Representation):把資源实际展现出去的方式,称为它的主要表现层(Representation)。例如,文字可以用txt格式主要表现,还可以用HTML文件格式、XML文件格式、JSON文件格式主要表现,乃至能够选用二进制文件格式。
情况变换(State Transfer):每传出一个要求,就意味着了手机客户端和网络服务器的一次互动全过程。HTTP协议书,是一个无状态协议书,即全部的情况都储存在服务端。因而,假如手机客户端要想实际操作网络服务器,务必根据某类方式,让服务端产生“情况变换”(State Transfer)。而这类变换是创建在主要表现层以上的,因此 便是“主要表现层情况变换”。实际说,便是HTTP协议书里边,四个表明实际操作方法的形容词:GET、POST、PUT、DELETE。她们各自相匹配四种操作过程:GET用于获得資源,POST用于新创建資源,PUT用于升级資源,DELETE用于删掉資源。
怎样设计方案RESTful应用软件的API?
途径设计方案:概念模型设计结束以后,大部分就可以明确有什么資源要开展实际操作,相对性应的途径还可以设计方案出去。
形容词设计方案:也就是对于資源的具体步骤种类,有HTTP形容词表明,常见的HTTP形容词以下:POST、DELETE、PUT、GET
RESTful实例
/account/1 HTTP GET:获得id=1的account
/account/1 HTTP DELETE:删掉id=1的account
/account/1 HTTP PUT:升级id=1的account
SpringMvc对RESTful的适用
RESTful的URL途径自变量
URL-PATTERN:设定为/,便捷阻拦RESTful要求。
@PathVariable:能够分析出去URL中的模版自变量({id}/{name})
URL:http://localhost:8080/ssm/cyb/item/1/chenyanbin
Controller层:
@RequestMapping("{id}/{name}")
@ResponseBody
public Item queryItemById(@PathVariable Integer id,@PathVariable String name){
.............
}
如图所示
RESTful的CRUD
@RequestMapping:根据设定method特性的CRUD,能够将同一个URL投射到不一样的HandlerMethod方式上。
@GetMapping、@PostMapping、@PutMapping、@DeleteMapping注释同@RequestMapping注释的method特性设定。
RESTful的資源描述
RESTful服务项目中一个关键的特点便是一种資源能够有多种多样表达形式,在SpringMvc中能够应用ContentNegotiatingManager这一內容商议管理工具来完成这类方法。
內容商议的方法有三种
后缀名,例如.json表明我想JSON文件格式数据信息、.xml表明我想xml格式数据信息
要求主要参数:默认设置是“format”
请求头设定Accept主要参数,例如设定Accept为application/json表明要JSON文件格式数据信息
如今一般RESTful风格回应的数据信息一般全是JSON文件格式,因此 一般都不应用內容商议管理工具,立即应用@ResponseBody注释将数据信息依照JSON文件格式回到
静态数据資源浏览
在Springmvc.xml文件中,应用mvc:resources标识,实际以下:
....
....
....
....
如图所示
什么是RESTful?RESTfule风格又是啥?
SpringMvc会把mapping投射到ResourceHttpRequestHandler,那样静态数据資源在历经DispatcherServlet分享时就可以寻找相匹配的Handler了。