RESTful

1、REST(Representational State Transfer)表象化状态转变(表述性状态转变),在2000年被提出,基于HTTP、URI、XML、JSON等标准和协议,支持轻量级、跨平台、跨语言的架构设计。是Web服务的一种新的架构风格(一种思想)。

轻量级:代码不被侵入,轻量级跟包大小无关。耦合性越低越轻量。、

rest原则:

(1) 网络上的所有资源都有一个唯一的资源标识符

(2) 同一个资源具有多个不同的表现形式(xml , json等)

(3) 对资源的各种操作不会改变资源标识符

(4) 所有的操作都是无状态的,服务器端不存储来自某个客户的某个请求中的信息,并在该客户的其他请求中使用

2、RESTful(遵循了rest原则的web服务)

restful是由rest衍生出来的一种常见的REST应用,REST式的web服务是一种ROA(面向资源的架构)。

(1) . RESTful资源操作

http方法资源操作幂等安全
GET SELECT
POST INSERT
PUT UPDATE
DELETE DELETE

幂等性:对同一REST接口的多次访问,得到的资源状态是相同的。

安全性:对该REST接口访问,不会使服务器端资源的状态发生改变。

(2) 接口示例

传统URL请求格式
http://127.0.0.1/user/query/1 GET  根据用户id查询用户数据
http://127.0.0.1/user/save POST 新增用户
http://127.0.0.1/user/update POST 修改用户信息
http://127.0.0.1/user/delete GET/POST 删除用户信息

RESTful用法
http://127.0.0.1/user/1 GET  根据用户id查询用户数据
http://127.0.0.1/user  POST 新增用户
http://127.0.0.1/user  PUT 修改用户信息
http://127.0.0.1/user  DELETE 删除用户信息

之前的操作是没有问题的,大神认为是有问题的,有什么问题呢?你每次请求的接口或者地址,都在做描述,例如查询的时候用了query,新增的时候用了save,其实完全没有这个必要,我使用了get请求,就是查询.使用post请求,就是新增的请求,我的意图很明显,完全没有必要做描述,这就是为什么有了restful.

(3). 响应设计

原则:数据接收到即可使用,无需拆箱。

在一次请求中,content body仅仅用于传输数据。Header中存放描述请求或请求的元数据,例如 X-Result-Fields。 

(4). http响应状态码

3. RESTful的使用
下面将用实际代码演示RESTful做增删改查的操作使用示例:

1.查询get:

查询测试:

 

2.新增post:

新增测试:
AJAX调用:

3.更新put:

Service写法:

更新测试:

默认情况下,PUT请求是无法提交表单数据的,在Spring MVC项目中需要在web.xml中添加过滤器解决:

<!-- 解决PUT请求无法提交表单数据的问题 -->
<filter>
<filter-name>HttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

4.删除delete:

删除测试:

优势

RESTful减少了传统请求的拆装箱操作,结构清晰,在接口定义中受到前后端开发者的青睐

---------------------
作者:大脑补丁
来源:CSDN
原文:https://blog.csdn.net/x541211190/article/details/81141459
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/sarah-wen/p/10787784.html