REST与异步事件协作技术解析
1. 超媒体作为应用状态引擎(HATEOAS)
在REST中,超媒体作为应用状态引擎(Hypermedia As the Engine of Application State,简称HATEOAS)这一概念有助于避免客户端与服务器之间的耦合。
超媒体是指一段内容包含指向各种其他格式内容(如文本、图像、声音)的链接。在常见的网页中,我们通过点击链接(一种超媒体控件)来查看相关内容。HATEOAS的核心思想是,客户端应通过这些指向其他资源的链接与服务器进行交互(可能导致状态转换),而无需确切知道资源在服务器上的位置。
以亚马逊购物网站为例,购物车的位置、图形和链接可能会随时间变化,但用户仍能识别并与之交互。这是因为用户理解购物车的含义,只要网站与用户之间的隐式契约得到满足,这些变化就不会造成重大影响。
对于MusicCorp的专辑列表,我们可以看到超媒体控件的使用示例:
<album>
<name>Give Blood</name>
<link rel="/artist" href="/artist/theBrakes" />
<description>
Awesome, short, brutish, funny and loud. Must buy!
</description>
<link rel="/instantpurchase" href="/instantPurchase/1234" />
</album>