不确定是否是为了问这些关于休息的基本问题.
我越是试图理解REST并想要实现它,我就越困惑。我想可能是因为那些抽象概念,当人们来教你休息是什么的时候,我看到了这些抽象概念。例如,
从维基百科得到休息,
表示状态传输( REST )是万维网体系结构的抽象;更准确地说,REST是一种体系结构风格,由应用于分布式超媒体系统中的组件、连接器和数据元素的一组体系结构约束组成。
从这个链接
那么,下面这些抽象的术语是什么意思?
你能用一个具体的例子来解释它们吗?
发布于 2014-12-11 15:00:44
Representation是在使用链接向资源发出请求时通过线路发送的完整字节集的名称。
Resource是对您的应用程序很重要的任何概念,您希望将它公开给客户端应用程序。资源由URL标识。
从技术上讲,URL 是出现在冒号前面的URL的最初几个字节。例如: http、urn、ftp、file等。然而,我怀疑在您所看到的上下文中,它意味着组织路径段和查询URL的字符串参数,并为URL的这些部分指定意义的约定。
从REST的角度来看,服务器可以创建URL约定,但是客户机对这些约定一无所知。
超媒体是支持超链接的媒体类型的分类。超文本是一个较旧的术语,几乎等同于超媒体。理论上,超媒体不需要是基于文本的格式。到目前为止,我还没有发现任何非超文本的超媒体格式。
超链接、链接和web链接是同义词。
不幸的是,这些术语在定义上是抽象的。有许多不同的方法来实现这些概念。
ActiveRecord是一个实现概念,通常用于包含将用于构建资源表示的数据。但是,如果仅限于从ActiveRecord实例中创建资源,则很可能难以实现有效的REST。
资源的表示应该是统一的--这对我来说是没有意义的。有一个叫做“统一接口”的REST约束。但是,此约束指的是使用一致的接口来构建分层应用程序。也就是说,当客户端想要与服务器对话时,您可以插入代理、负载均衡器、缓存之间,而客户机和服务器不知道区别,因为接口是一致的。
使用超媒体--超媒体帮助您将客户端和服务器分离开来,允许它们各自独立发展。如果这对你来说不重要(也就是说,你总是可以在网站的同时部署你的客户端javascript ),那么你就不会从中获得太多的价值。
使用API的单个条目--参见前面的内容。如果你需要独立的进化能力,那就多探索一些。
包括一个“自我链接在你的表示和再次.
JSON不仅仅意味着抛出模型,因为JSON是应用程序边界的一种体系结构风格。将ActiveRecords公开为参考资料将客户端与服务器的实现细节联系起来。此外,HTTP仅限于几种方法(GET、PUT、POST、DELETE、OPTIONS、HEAD)。为了弥补这个有限的词汇表,您需要创建与数据库中的记录无关的参考资料。
发布于 2014-12-08 12:59:12
许多人很快就指出,通常使用的"REST“并不是真正的REST,正如最初定义的那样。
围绕这个话题的讨论和辩论没完没了(毫无意义),但从实际角度来看,我更愿意考虑“资源”,以及如何最好地公开它们。
REST的概念在这方面可能具有指导性,即使公共实现与源不同。
最后,我们是程序员,必须构建符合今天目标的东西,因为我们知道它们不会是明天的目标。
https://stackoverflow.com/questions/27358199
复制相似问题