超媒体API中自我链接的重要性是什么?

Ric*_*ell 18 rest hateoas hypermedia

我在REST上阅读的所有文章和书籍都重复了为您的超媒体响应添加"自我"重要链接的重要性,但他们对原因和用例都很清楚.

为什么要添加自我链接以及它如何有用?

fum*_*chu 17

主要原因是客户端(甚至一些服务器)不存储具有表示的表示的位置.例如,如果您wget http://.../foo.json,表示将保存到磁盘,但获取它的URI将不会.如果表示中没有嵌入"自"链接,则会导致两个问题:

  1. 文件中的相对链接可能不再具有要解决的基础,因此将"破坏"; 和

  2. 如果客户PUT修改文档,客户端将没有嵌入式概念,例如文档返回服务器.少数客户独立维护这些信息,但大多数客户没有.

重要的是要理解表示可能在HTTP会话之外有生命,甚至可以通过其他协议(电子邮件,FTP,书籍等)传输.因此,有经验的媒体类设计者通常包括"自我"链接.