**更新:horray!所以这是一次实践和理解的旅程.;)现在我不再感到愚蠢.*
我已经阅读了很多关于REST的文章,并编写了几个利用RESTful资源的rails应用程序.但是,我从来没有真正感觉到我完全理解它是什么,以及RESTful和非宁静之间有什么区别.我也很难向人们解释为什么/何时应该使用它.
如果有人已经找到了关于REST的明确解释以及何时/何时/何地使用它的情况,(以及何时不使用),如果你能把它放在一起,它将有益于世界,谢谢!=)
REST通常是这样学习的:
您听说REST正在使用HTTP,因为它避免了SOAP Web服务的包络,因为许多SOAP标准所需要的大多数都是由HTTP以简单,严肃的方式处理的.您还可以快速了解到需要使用正确的方法进行正确的操作.
后来,也许几年后,你会听到REST不止于此.REST实际上也是资源之间链接的概念.这通常需要一段时间才能掌握完整的含义,但是当您了解这一点时,您开始在响应中引入超链接,以便客户端可以导航您的系统,而无需与服务器如何命名其资源(即URI)相关联.
即使以后,你还是知道你还没有理解REST!这是因为您发现媒体类型很重要.您开始调用媒体类型application/vnd.example.foo+json
并在其中加入超链接,因为这已经是您对REST的理解.
多年过去了,你无数次重读菲尔丁的论文,看看你有没有错过任何东西,它突然发现你真正的HATEOAS约束是什么:它是关于客户没有任何关于服务器资源是什么的概念结构化,但它在运行时发现这些关系.这也意味着用户面前的屏幕完全由通过线路传递的内容驱动,所以实际上,如果服务器传递了一个图像/ jpeg,那么这就是你应该向用户显示的内容,而不是错误消息说"AtomProcessor无法处理image/jpeg".
我刚刚和#4达成协议,我希望梯子不再长!我花了七年时间.