如今,每个人都在进行SOA,即使有些人实际上并不了解全部内容。所以他们做错了。以此为类比,我知道REST是什么(或者至少我认为我是这样做的),并且想要做一些。但是我想做对。
所以我的问题是做REST的正确方法是什么?
如今,每个人都在进行SOA,即使有些人实际上并不了解全部内容。所以他们做错了。以此为类比,我知道REST是什么(或者至少我认为我是这样做的),并且想要做一些。但是我想做对。
所以我的问题是做REST的正确方法是什么?
Answers:
嗯,有很多方法可以学习如何构建RESTful Web应用程序,没有,没有唯一的正确方法。RESTful不是一个标准,但它使用一组标准(HTTP,URI,Mime Type等)。
从此开始:我如何向我的妻子解释REST
然后,继续进行以下操作:RESTful Web服务食谱
然后,全力以赴开发Web应用程序,因为最好的学习方法是进行实验,并且您可以从错误中学习很多;)
如果您的第一个Web应用程序不会完全基于RESTful,请不要担心:您会找到实现它的方法!
因此,引用Obi-Wan Kenobi的话,“愿力量与您同在!” ;)
编辑
好吧,让我更具体一些。 您想制作一些RESTful Webapp,对吗?好吧,正如我所说的,有很多方法可以做到,但这是主要的指导原则。
REST(表示状态传输)是分布式系统(如WWW)的软件体系结构样式。它不是标准,而是使用一组标准:HTTP,AJAX,HTML,URI,Mime Type等。我们正在谈论的是资源的表示形式,而不是资源本身。取自“我如何向妻子解释REST”:
妻子:网页是一种资源吗?
瑞安:有点。网页是资源的表示。资源只是概念。
好的,我们看到要标识可以使用URI的资源,但是需要其他一些操作(添加,修改,删除等):非常欢迎CRUD(创建,读取,更新和删除)。
现在,关于PUT和DELETE,可能会出现一些技术问题(您将使用HTML表单获得它们):通常,开发人员会针对每个“ PUT”和“ DELETE”请求使用POST绕过此问题。正式地,您必须使用PUT和DELETE。顺便说一句,做你想做的。我的经验促使我每次都使用POST和GET。
--- 应该使用下一部分,但它不是REST的约束:它涉及链接数据 ---
技术细节中的抽象URI!告别URI,如下所示:
http://www.example.com/index.php?query=search&id=9823&date=08272012
重新设计URI!使用上面的链接,并进行如下更改:
http://www.example.com/search/2012/08/27/9823
好多了吧?可以通过以下方式完成:
另一件事:使用不同的URI表示不同的资源:
注意:about.html和about.rdf不是文件!它们可能是XSLT转换的结果!
如果您到了这一步,恭喜!可能您已经准备好获取更多抽象概念,因为我们正在输入语义Web技术详细信息;)好吧,当您的客户想要资源时,它通常会发出以下请求:
GET http://www.example.com/about
Accept: application/rdf+xml
但是服务器不会使用about.rdf做出响应,因为它具有不同的URI(http://www.example.com/about.rdf)。因此,让我们看一下303模式!服务器将返回以下内容:
303 See Other
Location: http://www.example.com/about.rdf
客户将遵循返回的链接,如下所示:
GET http://www.example.com/about.rdf
Accept: application/rdf+xml
最后,服务器将返回请求的资源:
200 OK
about.rdf
不用担心:您的客户端应用程序不会执行任何操作!303模式必须由服务器应用程序完成,其余的将由您的浏览器完成;)
理论常常与实践相距甚远。是的,现在您知道如何设计和开发RESTful应用程序,但是以上指南只是一个提示。您将找到构建Web应用程序的最佳方法,并且可能与理论上的想法不同。不要给该死的:D!
REST API必须是超文本驱动的,Roy Thomas Fielding
REST圣经书或其他内容。
不需要圣经书;我有相同的确切问题,通过阅读以下三篇文章,了解了我需要或想了解的有关REST的所有知识:
但是我想做对。
正如您在上面的文章中所读到的那样,关键是将应用程序中可访问的部分视为可以使用现有HTTP“动词”创建,检索,更新或删除的“资源”:GET,PUT,POST ,删除。
另外,了解PUT和POST之间的区别以及何时使用它们。GET,PUT和DELETE应该是幂等事务,而POST应该不是。
另外,在与客户端通信时,请正确使用HTTP状态代码。