REST超媒体是带链接或者表单的表述格式,好的超媒体格式既能传达特定于领域的信息,也传达 了协议的信息。例如:咖啡店的咖啡订单
带有定制超媒体链接的咖啡店订单<payment/>就是一个超媒体控件,这样的方式不是添加超媒体控件的唯一方式,也不是最理想的方式,因为它会产生多个元素,这些元素的链接语义是几乎相同的,但是协议语义却是不同的。
在书中所写的最好方法是将关注点分离,区分开链接的动作和链接添加含义的动作。链接是一个重复性的过程,然而为链接添加的含义却因为不同的上下文而不同,这就是关注点分离。
带超媒体格式的咖啡订单我们在这里定义 了一个<link>的元素,传达中立于领域的链接功能,用rel属性来表现与一个特殊链接相关的应用语义。这样的设计,既可以表达自己特殊的应用需求,又能保持超媒体的益处,但是这样并能像XHTML这类更广泛使用的超媒体格式那样被广泛部署的一般客户端进行处理,即限制了应用的通用性。
rel:relationship的英文缩写,REL属性用于定义链接的文件和HTML文档之间的关系。
href:Hypertext Reference的缩写。意思是超文本引用,href 属性的值可以是任何有效文档的相对或绝对URL,包括片段标识符和JavaScript代码段。常见的就是a标签中的。
src: 一般指的是引用外部文件的路径,像img标签中src表示图片的路径。
url: 统一资源定位符,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。一般就是浏览器地址栏填写的。
如何处理这些超媒体格式?
http提供了一种办法,即HTTP头信息中的Content-Type来标识特殊媒体类型表述。我们需要做的是创建一种媒体类型,为资源表述来指定一套解释方案,这个方案是以编码、纲要和处理模型的形式进行描述的,这是为服务创建契约的一个关键步骤。
DAP(领域应用协议):指定了消费者和业务流程中所涉及到的一组资源之间的合法交互。
媒体类型是DAP中的三大组件之一,另外两个是链接关系值和HTTP惯用语(idiom),前者用来描述被链接的资源的作用,后者用来操作参与协议的资源。 链接关系值在当前表述的上下文中表明被链接资源的作用,帮助消费者理解他们为何需要激活超媒体控件。媒体类型帮助消费者了解链接后的结果。
网友评论