表示是当您使用链接向资源发出请求时通过线路发送的完整字节集的名称。
资源是对您的应用程序很重要并且您希望将其公开给客户端应用程序的任何概念。资源由 URL 标识。
从技术上讲,URL 方案是出现在冒号之前的 URL 的前几个字节。例如http、urn、ftp、文件等。但是,我怀疑在您所看到的上下文中,它意味着组织路径段和查询字符串参数和URL 并为URL 的这些片段分配意义的约定。
从 REST 的角度来看,服务器可以创建 URL 约定,但客户端应该对这些约定一无所知。
超媒体是支持超链接的媒体类型的分类。超文本是一个较老的术语,几乎是超媒体的同义词。理论上,超媒体不需要是基于文本的格式。到目前为止,我不知道任何不是超文本的超媒体格式。
超链接、链接和网页链接是同义词。
不幸的是,这些术语在定义上是抽象的。有许多不同的方式来实现这些概念。
ActiveRecord是一个实现概念,通常用于包含将用于构建资源表示的数据。但是,如果您将自己限制为只能从 ActiveRecord 实例创建资源,则可能难以实现有效的 REST API。
资源的表示应该是统一的——这对我来说毫无意义。有一个称为“统一接口”的 REST 约束。但是,此约束是指使用一致的接口来支持构建分层应用程序。即当客户端想要与服务器通信时,您可以在其间插入代理、负载均衡器、缓存,客户端和服务器不知道区别,因为接口是一致的。
使用超媒体- 超媒体帮助您将客户端和服务器解耦,以允许两者独立发展。如果这对您不重要(即您总是可以在部署网站的同时部署您的客户端 javascript),那么您将不会从中获得很多价值。
对 API 使用单个条目- 请参阅上一点。如果您需要独立的可进化性,请探索更多。
在您的陈述中包含“自我链接”再次......
REST 不仅仅意味着吐出 ActiveRecord 模型,因为 JSON REST 是应用程序边界的一种架构风格。将 ActiveRecords 公开为资源将您的客户端与服务器的实现细节联系起来。此外,HTTP 仅限于几种方法(GET、PUT、POST、DELETE、OPTIONS、HEAD)。为了弥补这个有限的词汇量,您需要创建与数据库中的记录无关的资源。