什么是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的accountSpringMvc对RESTful的支持RESTful的URL路径变量

URL-PATTERN

:设置为

/

,方便拦截RESTful请求。

@PathVariable

:可以解析出来URL中的模板变量(

{id}/{name}

)

URL:http://localhost:8080/ssm/cyb/item/1/chenyanbinController层:@RequestMApping("{id}/{name}")@ResponseBodypublic 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标签,具体如下:

................

如图

SpringMvc会把mapping映射到

ResourceHttpRequestHandler

,这样静态资源在经过DispatcherServlet转发时就可以找到对应的Handler了。

1.《restful风格 什么是RESTful?RESTfule风格又是啥?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《restful风格 什么是RESTful?RESTfule风格又是啥?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/346872.html