IT修真院·小课堂丨互联网职业小课堂在线学习平台

课堂课题:

为什么要用Rest风格,如果不用Rest的话,接口应该怎么定义,在使用Rest风格之前,大家都是用什么方式写接口的?

关联任务:

任务五

直播时间:

2018-12-05 16:30:00


课堂内容:

视频链接:

PPT链接:

提交按钮:

小课堂内容格式


标题:

【修真院xx(职业)小课堂】课题名称

开场语:

大家好,我是IT修真院XX分院第X期的学员XX,一枚正直纯洁善良的XX程序员,今天给大家分享一下,修真院官网XX(职业)任务X,深度思考中的知识点——XXX

(1)背景介绍:

背景介绍的时候,尽可能的要宽广,讲清楚来龙去脉,讲清楚为什么会需要这个技术。

(2)知识剖析:

讲知识点的时候,尽可能的成体系,学会成体系的去给别人介绍知识。现在很多做的都是零散的,没有分类。

(3)常见问题:

最少列出1个常见问题。

(4)解决方案:

写清楚常见问题的解决方案。

(5)编码实战:

尽可能的去寻找在真实项目中在用的。如果你能找到某个网站在用你说的知识点,这是最好的。学以致用,否则当成练习题就没有意义了。多准备一些demo,讲解过程中将知识点和demo结合,便于大家理解所讲解的知识点。

(6)拓展思考:

知识点之外的拓展思考,由分享人进行讲解,这些东西就是所谓的深度,也是一个人技术水准高低比较的表现。

(7)参考文献:

引入参加文献的时候,在引用的句子后面加上序号【1】。参考文献中列出详细来源。不要去抄别人的东西,这是一个基本的态度。

(8)更多讨论:

Q1:提问人:问题?
A1:回答人(可以是分享人,也可以是其他学员):回答
Q2:提问人:问题?
A2:回答人(可以是分享人,也可以是其他学员):回答
Q3:提问人:问题?
A3:回答人(可以是分享人,也可以是其他学员):回答

(9)鸣谢:

感谢XX、XX师兄,此教程是在他们之前技术分享的基础上完善而成。

(10)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

为什么要用Rest风格,如果不用Rest的话,接口应该怎么定义,在使用Rest风格之前,大家都是用什么方式写接口的?     中品

辅导师兄 [郑州|结业弟子]JAVA-张泉良


大家好,我是IT修真院郑州分院第12期的学员李雨航,一枚正直纯洁善良的后端程序员,今天给大家分享一下,修真院官网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.csdn.net/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。重定向可以带数据过去,转发不能。转发是服务器行为,重定向是客户端行为。


分享到此结束


评论

[郑州|结业弟子]JAVA-张泉良 发表于 2018-12-08 16:27:10 #1

1、内容不够丰富,比如怎么解决url 冲突 2、使用了resful风格,怎么传递参数

回复

请您登录 后进行评论