为什么要用Rest风格,接口应该怎么定义,除了Rest还可用什么方式写接口的?

为什么要用Rest风格,如果不用Rest的话,接口应该怎么定义,在使用Rest风格之前,大家都是用什么方式写接口的? 这里是修真院后端小课堂,每篇分享文从 为什么要用Rest风格,如果不用Rest的话,接口应该怎么定义,在使用Rest风格之前,大家都是用什么方式写接口的? 】 大家好,我是IT修真院郑州分院第12期的学员李雨航,一枚正直纯洁善良的后端程序员,今天给大家分享一下,修真院官网java(职业)任务2, 深度思考中的知识点——为什么要用Rest风格,如果不用Rest的话,接口应该怎么定义,在使用Rest风... 阅读详情

这里是修真院后端小课堂,每篇分享文从

大家好,我是IT修真院郑州分院李雨航,一枚正直纯洁善良的后端程序员,

今天给大家分享一下,修真院官网java(职业)任务2,

深度思考中的知识点——为什么要用Rest风格,如果不用Rest的话,接口应该怎么定义,在使用Rest风格之前,大家都是用什么方式写接口的?

1.背景介绍

REST(Representational State Transfer)指的是一种架构设计风格,而满足这种设计风格的应用程序或设计就被认为是RESTful架构风格。

这也是目前互联网中最流行的一种软件架构风格,它结构清晰、符合标准、易于理解,越来越多的应用服务开始使用RESTful这种架构风格,尤其是那些基于HTTP协议的网络服务。

而常常提及的rest的web服务,是rest作为在web领域的一种实现方式

2.知识剖析

所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。

它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。

要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。

表现层(Representation)

“资源"是一种信息实体,它可以有多种外在表现形式。我们把"资源"具体呈现出来的形式,叫做它的"表现层”(Representation)。

URI只代表资源的实体,不代表它的形式。

严格地说,有些网址最后的".html"后缀名是不必要的,因为这个后缀名表示格式,属于"表现层"范畴,而URI应该只代表"资源"的位置。

它的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对"表现层"的描述。

状态转化(State Transfer)

访问一个网站,就代表了客户端和服务器的一个互动过程。在这个过程中,势必涉及到数据和状态的变化。

互联网通信协议HTTP协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。

客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。

它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。

Rest风格总结

  1. REST描述的是在网络中client和server的一种交互形式;REST本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口);

  2. Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心,表示一个网络实体,代表一个资源;它对应唯一的一个资源,是资源的地址。

  3. 用HTTP协议里的动词来实现资源的添加,修改,删除等操作。

  4. Server和Client之间传递某资源的一个表现形式

  5. 用 HTTP Status Code传递Server的状态信息。

3.常见问题

1.@pathvariable @requestparam共同点

答:用于从request中接收请求的,两个都可以接收参数

2@pathvariable @requestparam区别

答: RequestParam 汉语意思就是: 请求参数 顾名思义 就是获取参数的

    PathVariable 汉语意思是:路径变量,顾名思义,就是要获取一个url 地址中的一部分值

4.编码实战

5.扩展思考

什么是幂等操作?幂等性为什么重要?

等幂性(Idempotence)

, 等幂性简单点说就是一次请求和多次请求,资源的状态是一样。

比如GET和HEAD,不论你请求多少次,资源还是在那里。

请注意,DELETE和PUT也是等幂的,以为对同一个资源删除一次或者多次,结果是一样的,就是资源被删除了,不存在了。

为什么说PUT也是等幂的?当你PUT一个新资源的时候,资源被创建,再次PUT这个URI的时候,资源还是没变。

当你PUT一个存在的资源时,更新了资源,再次PUT的时候,还是更新成这个样子。

在PUT更新的时候,不能做相对的更新(依赖资源现在的状态),比如每次对一个数加1,这样资源状态就会变化。

应该每次更新成某个数,比如把某个数变成4,则无论多少次PUT,值都是4,这样就是等幂了。

我们设计Restful WS的时候,GET,HEAD, PUT, DELETE一定要设计成等幂的。

由于网络是不可靠的,安全性和等幂性就显得特别重要。

如果一次请求,服务器收到处理以后,客户端没有收到相应,客户端会再次请求,如果没有等幂性保障,就会发生意想不到的问题。

POST是不安全也不等幂的,还是拿weblog的例子,如果两次POST相同的博文,则会产生两个资源,URI可能是这样/weblogs/myweblog/entries/1和/weblogs/myweblog/entries/2,尽管他们的内容是一摸一样的。

6.参考文献

https://blog.youkuaiyun.com/xinjianwuhen1991/article/details/50095021

http://www.ruanyifeng.com/blog/2011/09/restful.html

7.更多讨论

1,为什么要用RESTful结构呢?

答:近年来移动互联网的发展,各种类型的Client层出不穷,RESTful可以通过一套统一的接口为 Web,iOS和Android提供服务。

有了RESTful结构,不管是电脑端还是手机端,或者是APP,按照REST的接口来进行数据交互,完全不用关心后端实现,也就是说,前端和后端真正的实现了完全的分离设计。

2.在使用rest之前,是怎么写接口的

答:URL该怎么写就怎么写,但是没有PUT,GET,POST,DELETE方法

3.1. 重定向和转发的区别?

答:redirect和forward。重定向可以带数据过去,转发不能。转发是服务器行为,重定向是客户端行为。

分享到此结束

一文详解REST风格 REST(Representational State Transfer,表现层状态转移)是一种被广泛采用的Web API架构风格,它并非协议或标准,而是一组设计原则,旨在通过HTTP协议天然特性构建简洁、可扩展、易于理解的API。 阅读详情

相关推荐

除了REST/JSON有什么其他交互方式

概览 目前大家平常业务开发所用用到的方法大多是采用restful风格的,也就是通过POST/GET/PUT/DELETE/PATCH等方法对于指定URL进行请求。但技术永远是变化的,从更大的尺度上来讲前后端交换还有不少的其他的方式。 HTTP方式 前后台或客户端主要通过HTTP来通讯。 restful 本来不想将RestFUL接口的,但还是忍不住要顺带提一句,restful接口是基于HTTP标准协...

zhaoenweiex的博客 2802

REST、RESTful风格

REST(英文:Representational State Transfer,简称REST)一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。REST 指的是一组架构(约束条件)和原则。满足这些(约束条件)和(原则)的应用程序或设计就是 RESTful。

路漫漫其修远兮,吾将上下而求索。小手点一波关注进阶的李仙桎,我们一起携手进步, 1213

【ISP图像处理】Demosaic去马赛克技术演进与边缘优化策略

本文深入解析了ISP图像处理中的Demosaic(去马赛克)技术。从Bayer阵列原理出发,梳理了从双线性插值、Hamilton-Adams边缘导向算法到利用通道相关性与自相似性的技术演进历程,并重点探讨了针对边缘与纹理伪影的优化策略,为工程实践中的算法选型与硬件协同设计提供了专业指导。

weixin_29091445的博客 386

代码不用restful的造成的影响

代码不用restful造成的影响

yzhao66的博客 302

发那科机器人Modbus通讯配置全攻略:从IP设置到信号调试

本文详细介绍了发那科机器人Modbus通讯的配置方法,从基础认知到IP设置、端口配置、信号调试及故障排查。重点讲解了UOP和DI/DO信号的配置技巧,帮助工程师快速实现机器人与PLC的稳定通讯,提升自动化系统效率。

weixin_27872611的博客 620

更多 LSTM 变种——应用于 CMAPSS 数据集

本文并模型介绍,只是把一些比较火的技术,像双向注意力机制,自注意力机制这样的比较火的内容,简单的和LSTM堆叠,结果发现效果都不如最基础的,这里作者将本人代码及实现结果,进行展示,给各位想更改LSTM的朋友一些。

2301_77491330的博客 1765

为啥REST如此重要?

英文原文:Why REST is so important   摘要:REST——表征状态转移,由于 REST 模式的 Web 服务更加简洁,越来越多的 Web 服务开始采用 REST 风格设计和实现。例如,Amazon.com 提供接近 REST 风格的 Web 服务进行图书查找;雅虎提供的 Web 服务也是 REST 风格的。   本文我们将讨论 REST,它定义了一组体系架构原则

敬诚为之 879

C++11并发与多线程笔记(2) 线程启动、结束,创建线程多法、join,detach

第二节 线程启动、结束,创建线程多法、join,detach 一、范例演示线程运行的开始 程序运行起来,生成一个进程,该进程所属的主线程开始自动运行;当主线程从main()函数返回,则整个进程执行完毕 主线程从main()开始执行,那么我们自己创建的线程,也需要从一个函数开始运行(初始函数),一旦这个函数运行完毕,线程也结束运行 整个进程是否执行完毕的标志是:主线程是否执行完,如果主线程执行完毕了,就代表整个进程执行完毕了,此时如果其他子线程还没有执行完,也会被强行终止【此条有例外,以后会解释】 创建

qq_38231713的博客 1万+

Http相关

RESTful API 是一种基于 REST(Representational State Transfer,表现层状态转移)架构风格的 API 设计规范,它的核心思想是资源(Resource)和 HTTP 方法(Method)构成的组合来实现对资源的操作。

liuniansilence的博客 2087

PHP特性知识点总结

(1)类型转换之前提到过的是字符串转为整型。其实php手册里面提到了各种类型的转换。先把他放在这里。我们按照php手册上的顺序来介绍,只介绍几个比较常用的。①转化为bool②转化为整型int。

m0_73605862的博客 1295

汽车以太网- IEEE 802.3标准

关于汽车以太网,大家看到最多的标准大概就是IEEE802.3bw,也就是我们车内使用的百兆以太网,专业称呼是100BASE-T1,该标准是车内百兆以太网的物理层协议,是我们学习汽车以太网必须要了解的协议。在正式了解协议之前,我们先介绍下什么是IEEE802.3标准。............

weixin_39974126的博客 7105

rest风格使用两个变量_为什么要用Rest风格,接口应该怎么定义,除了Rest还可用什么方式写接口的?...

这里是修真院后端小课堂,每篇分享文从深度思考中的知识点——为什么要用Rest风格,如果不用Rest的话,接口应该怎么定义,在使用Rest风格之前,大家都是用什么方式写接口的?1.背景介绍REST(Representational State Transfer)指的是一种架构设计风格,而满足这种设计风格的应用程序或设计就被认为是RESTful架构风格。这也是目前互联网中最流行的一种软件架构风格,它结...

weixin_28848833的博客 192

在 SAP GUI 里开发与调用 Adobe PDF 表单:SFP 建模 + Driver Program 调用的全流程实战

本文介绍了在SAP系统中使用Adobe PDF表单的完整流程。重点阐述了SAP Interactive Forms相比传统表单工具的优势,特别是在处理复杂排版、条码和交互式字段时的适用性。文章详细说明了开发流程:从安装设计工具Adobe LiveCycle Designer开始,到在SFP事务码中创建Interface和Form的数据模型,再到编写驱动程序的ABAP代码实现PDF输出。特别强调了Interface作为数据契约的重要性,以及如何通过分层设计实现前后端分离开发。最后提供了标准调用链的示例代码,展

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 272

为什么要用REST风格以及不用的话接口怎么定义

这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能,本篇分享的是: 【为什么要用REST风格以及不用的话接口怎么定义 】 大家好,我是IT修真院北京分院第22期的学员杨舜,一枚正直纯洁善良的JAVA程序员 今天给大家分享一下,修真院官网JAVA任务2的深度思考:为什么要...

IT修真院:初学者转行到互联网的聚集地 815

使用 Simulink Real-Time 搭建一个完整的实时信号采集与滤波系统模型

本文详细介绍了基于Simulink Real-Time构建实时信号采集与滤波系统的完整流程。主要内容包括:系统配置(模型创建与参数设置)、信号采集模块搭建(模拟信号源或真实硬件连接)、实时滤波器设计(浮点/定点)、输出可视化(Scope/ToWorkspace等)、模型编译与下载到目标机、外部模式在线调试及数据保存方法。系统可实现微秒级实时信号处理,适用于工业控制、航空航天等对时间确定性要求高的场景。文章还提供了优化建议(多速率建模、优先级调度等)和应用场景说明,帮助读者快速掌握实时系统开发的核心技能。

amy_mhd的博客 304

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

什么是REST风格? 什么是RESTFUL?(一篇全读懂)

一、什么是REST ?(一种软件架构风格) 缩写:REST (不是"rest"这个单词) 外文名:Representational State Transfer,简称REST。 中文名:表现层状态转移。 提出时间:2020年。 属性:一种软件架构风格。(以Web为平台的。web服务的架构风格,前后端接口时候用到。) REST之所以晦涩难懂,是因为前面主语(Resource )被去掉了。 全称是: Resource Representational State Transfer。 通俗来讲就是:资源在网络

SeniorShen的博客 6万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

REST风格详细介绍

REST风格 restful风格详细描述 springboot中建议使用此风格编写。

Huang405267467的博客 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

为什么要用REST风格

1.背景介绍 官方介绍:REST(Representational State Transfer)指的是一种架构设计风格,而满足这种设计风格的应用程序或设计就被认为是RESTful架构风格。这也是目前互联网中最流行的一种软件架构风格,它结构清晰、符合标准、易于理解,越来越多的应用服务开始使用RESTful这种架构风格,尤其是那些基于HTTP协议的网络服务。 2.知...

测试 1227

REST风格接口学习

REST 简介 大佬绕路,小白多篇文章整合总结篇 REST 是一个术语的缩写,REpresentational State Transfer,中文直译「表征状态转移」。这只是一个名字而已不必强行解释概念,关键是这个东西它干了什么,直接看怎么做,根据大佬讲有了一定项目经验再来看名字会有更深刻的理解。REST 是一套风格约定,RESTful 是它的形容词形式;比如一套实现了 REST 风格的接口,可以称之为 RESTful 接口。 REST 对请求的约定 REST 用来规范应用如何在 HTTP 层与 API 提

Mak1sΔe的博客 2719

高可用的java SpringBoot REST 风格API接口结果封装

文章目录1 摘要核心代码2.1 Swagger Maven 依赖2.2 接口返回结果封装2.3 使用说明2.4 Github 源码 1 摘要 REST 风格已经成为 WEB 开发的主流趋势,本文将分享作者自己在项目中使用的java后台 REST API 接口封装类。 核心代码 2.1 Swagger Maven 依赖 Swagger 作为可视化接口测试工具,根据代码自动生成接口文档,方便用户测试,...

Mrqiang9001 2491

REST风格(SPRINGBOOT框架)

一、核心概念 二、主要特点 三、优点 四、缺点 五、应用实例

ZangLing的博客 2514

webService的rest风格的接口发布流程

restful风格服务的发布 步骤 1 在接口中编写抽象方法以及在的实现类中配置相应的实现方法(rest的方法),示例代码如下: @Override @Produces("application/json")//返回值类型 @Consumes("application/x-www-form-urlencoded")//表单提交类型 @Path("rest_ping")//http访问的

a_walking_tomcat的博客 1万+

REST不就是http或者https接口吗,为什么要说REST?(RESTful API是一种基于HTTP协议的架构设计风格)(Representational State Transfer)

REST 是基于 HTTP 协议的“设计哲学”,它通过规范化接口设计,解决了传统 HTTP 接口的混乱问题,是现代 Web 开发和微服务架构的核心基础。

Dontla的博客 2329

REST接口规范总结

REST接口规范总结

Weison 1万+
上一篇: 请拿好这支时间之箭
下一篇: 怎么用Python写一个图片迁移脚本?
learning__java
博客等级 码龄8年 87粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值