RESTful介绍和使用教程

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

一.REST起源

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

1.什么是轻量级:

代码不被侵入(正例:SpringMVC中不用接口和继承,仅用注解完成。反例:Struts中每一个Action都要继承核心控制器),轻量级跟包大小无关。耦合性越低,越轻量。

二.REST架构的主要原则

  • 对网络上所有的资源都有一个资源标志符。

  • 对资源的操作不会改变标识符。

  • 同一资源有多种表现形式(xml、json)

  • 所有操作都是无状态的(Stateless)

符合上述REST原则的架构方式称为RESTful

1.URI和URL区别:

URI:http://example.com/users/

URL:http://example.com/users/{user} (one for each user)

2.什么是无状态性:

使得客户端和服务器端不必保存对方的详细信息,服务器只需要处理当前的请求,不需了解请求的历史。可以更容易的释放资源,让服务器利用Pool(连接池)技术来提高稳定性和性能。

这里写图片描述

三.RESTful介绍

RESTful是一种常见的REST应用,是遵循REST风格的web服务,REST式的web服务是一种ROA(面向资源的架构)。

1.RESTful资源操作

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

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

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

2.接口示例:

2.1.传统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 删除用户信息

2.2.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 删除用户信息

3.响应设计

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

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

4.http响应状态码

根据http响应码,判断请求状态,进而做出提醒。
这里写图片描述

四.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>

Jetbrains全家桶1年46,售后保障稳定

4.删除delete:

这里写图片描述

删除测试:

这里写图片描述

五.结语

至此,RESTful的介绍和使用已经完成,RESTful已在各互联网公司接口定义中,成为主流的范式,RESTful减少了传统请求的拆装箱操作,结构清晰,在接口定义中受到前后端开发者的青睐。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203552.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • QT下载安装教程

    QT下载安装教程文章目录下载安装编写程序下载下载QT安装包网址:https://download.qt.io/或者https://download.qt.io/archive/qt/选择需要的版本安装注意:在不连网下安装,否者第二步需要注册才能跳过这一步中选择对应的的组件安装即可,不用选择所有。例如可以在QT5.9.7下只选择MSVC201764-bit和MinGW这两个组件编写程序可以使用QT自带的QTCreator也可以使用VisualStudio,编写QT方法

    2022年5月17日
    41
  • mac开发php集成环境「建议收藏」

    mac开发php集成环境「建议收藏」    我是一个使用mac开发的phper,虽然使用mac开发也就不到一年,但是mac上的一些技巧还是掌握的不错的,但实际开发中光有操作技巧是不行的,环境的效率也是很重要的,因为之前一直使用homestead 虚拟机,刚开始还没感觉它有多慢,但是后来感觉homestead真是太慢了,当然这可能也跟电脑的性能有关,我经常启动好几个虚拟机,在上面跑windows系统。…

    2022年6月28日
    38
  • 由中序遍历和后序遍历还原二叉树_二叉树的中序列

    由中序遍历和后序遍历还原二叉树_二叉树的中序列二叉树的前序遍历、中序遍历和后序遍历之间还原二叉树1、概念(1)前序遍历   a、访问根节点;b、前序遍历左子树;c、前序遍历右子树。(2)中序遍历   a、中序遍历左子树;b、访问根节点;c、中序遍历右子树。(3)后序遍历   a、后序遍历左子树;b、后续遍历右子树;c、访问根节点。2、前序遍历和中序遍历还原二叉树思想如下:  a、根据前序遍历结果,第一个元素为二叉树的根结…

    2025年11月16日
    4
  • SDK是什么?什么是SDK

    SDK是什么?什么是SDK

    2021年9月25日
    74
  • echarts关系图谱初级实现

    echarts关系图谱初级实现echarts关系图谱初级实现具体实现的效果如图(主要是使用了echarts的力引导图),主要是为了展现人与人还有人与物之间的关系。如果你的项目只是用于展示的话,那么使用这个demo应该就能帮助到你。demo地址:…

    2022年6月26日
    59
  • java键值对_Java 读写键值对

    Properties类(读入写出键值对)是Map子类Map方法都能用publicstaticvoidmain(String[]args)throwsIOException{//读出Propertiespro=newProperties();FileInputStreamfis=newFileInputStream(“F:\\Demo.properties”);//Fi…

    2022年4月8日
    190

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号