当前位置:  开发笔记 > 编程语言 > 正文

REST究竟是什么意思?它是什么,为什么它现在变大了?

如何解决《REST究竟是什么意思?它是什么,为什么它现在变大了?》经验,为你挑选了5个好方法。

一世 理解(我认为)RESTful-ness背后的基本思想.在语义上使用HTTP方法 - GET获取,PUT put,DELETE删除等等......对吗?我以为我理解了REST背后的想法,但我认为我对HTTP实现的细节感到困惑.休息背后的驱动理念是什么,为什么这成为一件重要的事情?人们实际上已经使用了很长时间,在我的手电筒从未照过的互联网的一角?


Google Talk提到Atom Publishing Protocols与RESTful实现有很多协同作用.有什么想法吗?



1> pbreitenbach..:

这可能是REST的样子:

POST /user
fname=John&lname=Doe&age=25

服务器响应:

201 Created
Location: /user/123

将来,您可以检索用户信息:

GET /user/123

服务器响应(假设XML响应):

200 OK
JohnDoe25

更新:

PUT /user/123
fname=Johnny


这应该是公认的答案.没有bla bla bla.很有帮助.
我理解,对于大多数人来说,这将是一个令人满意的答案,但这个答案实际上是一个非常狭隘的REST意味着什么,请记住它(REST是一种架构风格).这就像问"什么是文艺复兴时期的建筑?" 有人回答"这是西斯廷教堂"......

2> bryanbcook..:

这是我的看法......

制作RESTful服务的吸引力在于,我们不是使用许多功能方法创建Web服务,而是标准化四种方法(创建,检索,更新,销毁):

POST

得到

删除

REST正在变得流行,因为它还代表了应用程序层的消息传递格式的标准化.虽然HTTP使用REST的四个基本动词,但HTML的常见HTTP消息格式不是构建应用程序的合同.

我听过的最好的解释是TCP/IP与RSS的比较.

以太网代表物理网络的标准化.Internet协议(IP)代表堆栈中较高的标准化,并具有多种不同的风格(TCP,UDP等).引入了"传输控制协议"(保证数据包传送)定义的通信合同,它为我们提供了应用层的全新服务集(FTP,Gopher,Telnet,HTTP).

在类比中,我们采用XML作为"协议",我们现在开始标准化消息格式.RSS正在迅速成为许多RESTful服务的基础.Google的GData API是RSS/ATOM变体.

"桌面小工具"是这种炒作的一个很好的实现:一个简单的客户端可以使用通用的API和消息传递标准来使用基本的Web内容或复杂的mashup.


但是CRUD不是REST; 它只是您可以通过REST原则映射的事项之一.

3> miceuz..:

HTTP目前使用不足且使用不当.

我们通常只使用两种HTTP方法:GET和POST,但还有一些方法:DELETE,PUT等(http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html)

因此,如果我们拥有由RESTful URL定义的资源(应用程序中的每个域对象都具有http://yoursite.com/path/to/the/resource形式的唯一URL )和正确的HTTP实现,我们可以操纵您的对象域名写作句子:

获取http://yoursite.com/path/to/the/resource

删除http://yoursite.com/path/to/the/resource

发布http://yoursite.com/path/to/the/resource

等等

建筑很好,一切都好.

但这只是理论观点,真实世界场景描述在我的答案之前发布的所有链接中.


URI命名约定不是REST的一部分.这是一个带外约定.资源导航必须是超文本驱动的.GET/DELETE/POST/PUT是'正确使用HTTP',但不一定是REST.

4> Sumit Arora..:

让我们回顾历史,谈谈Roy Fielding研究 - " 建筑风格和基于网络的软件架构的设计 ".它是一篇大论文,讲述了很多不同的东西.但作为标准工程师您想如何解释REST(Representational State Transfer)的明确含义,以及它的建筑风格.

这是我的解释方式 - "什么是REST".

请参阅运行在各种硬件之上的www(万维网),例如路由器,服务器,防火墙,云基础架构,交换机,LAN,WAN.这个www(万维网)的总体目标是分发超媒体.这个万维网配备了各种服务,例如基于信息的服务,网站,YouTube频道,动态网站,静态网站.这个万维网使用HTTP协议通过客户端/服务器机制在全球范围内分发超媒体.此HTTP协议在TCP/IP或其他适当的网络堆栈之上工作.

该HTTP协议使用八种方法来管理"分发协议"或"分布的建筑风格".这八种方法是:OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT.

但是在这个HTTP之上,Web应用程序正在使用自己的方式分发超媒体,例如Web应用程序正在使用与客户端高度绑定的Web服务,而服务器或"Web应用程序正在使用自己设计的客户端/服务器机制来制作HTTP之上的这种分发渠道.

什么罗伊菲尔丁研究说,这些八种方法OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,HTTP的CONNECT是如此成功,对各种硬件资源和网络之上提供超媒体的所有世界各地的栈与客户端/ server机制,我们为什么不在基于Web的应用程序中使用类似的策略.在这个GET上,POST,DELETE和PUT被最多使用.所以有四种方法可以将HyperMedia传递到全世界.

在REST API 架构样式应用程序中,Web应用程序需要设计业务逻辑(驻留在服务器中,例如Tomcat,Apache HTTP),其中包含所有对象实体(例如,客户是实体)和可能的操作(例如,基于检索客户信息)关于他们的客户ID').使用这些实体的那些可能的操作应该设计有四个主要操作或方法,即创建,检索,更新,删除.这些实体称为资源,这些实体以JSON或XML等形式呈现表示.我们有客户端(浏览器)调用创建,检索,更新,删除(CRUD)方法来对服务器中的此类资源驻留执行适当的功能.

但正如所解释的,表示的概念,意味着业务逻辑或对象的实体的表示方式.但是"国家转移"怎么样?

状态转移,其对"通信状态"的谈判从客户端到服务器.它讨论了从客户端到服务器的"状态转移"的设计,例如客户端在调用"客户"可以调用的下一个客户状态或客户状态后,首先调用"创建客户"操作.它的状态可能是"检索创建的客户数据","更新客户数据"或什么



5> Brian R. Bon..:

REST是一种定义和解决资源的架构.

要最好地理解REST,您应该查看面向资源的体系结构(ROA),它为实际实现REST体系结构提供了一套指导.

REST不需要通过HTTP,但它是最常见的.REST最初是由HTTP的创建者之一创建的.


维基百科的文章不是基于权威来源,而是相当困惑和误导.
推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有