首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解REST中的抽象术语

理解REST中的抽象术语
EN

Stack Overflow用户
提问于 2014-12-08 12:37:21
回答 2查看 62关注 0票数 0

不确定是否是为了问这些关于休息的基本问题.

我越是试图理解REST并想要实现它,我就越困惑。我想可能是因为那些抽象概念,当人们来教你休息是什么的时候,我看到了这些抽象概念。例如,

从维基百科得到休息,

表示状态传输( REST )是万维网体系结构的抽象;更准确地说,REST是一种体系结构风格,由应用于分布式超媒体系统中的组件、连接器和数据元素的一组体系结构约束组成。

从这个链接

  1. 资源的表述应统一
  2. 使用超媒体(而不是URL方案或资源名称映射)来表示关系
  3. 使用一个API的单一条目,超链接从那里(超链接?为什么不使用超媒体?)
  4. 在表示中包括一个“自我”链接
  5. REST并不仅仅意味着将ActiveRecord模型吐出JSON (那么应该吐出吗?)

那么,下面这些抽象的术语是什么意思?

  1. 申述,
  2. 资源,
  3. URL方案,
  4. 超媒体(它与超文本或有什么不同?)
  5. 资源名称映射到,
  6. ActiveRecord模型

你能用一个具体的例子来解释它们吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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)。为了弥补这个有限的词汇表,您需要创建与数据库中的记录无关的参考资料。

票数 1
EN

Stack Overflow用户

发布于 2014-12-08 12:59:12

许多人很快就指出,通常使用的"REST“并不是真正的REST,正如最初定义的那样。

围绕这个话题的讨论和辩论没完没了(毫无意义),但从实际角度来看,我更愿意考虑“资源”,以及如何最好地公开它们。

REST的概念在这方面可能具有指导性,即使公共实现与源不同。

最后,我们是程序员,必须构建符合今天目标的东西,因为我们知道它们不会是明天的目标。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27358199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档