面向资源的架构 (ROA) 定义的连通性有什么好处?按照我的理解,连通性的关键是能够仅使用根 URI 来抓取整个应用程序状态。
但这真的有用吗?
例如,假设 HTTP GET http://example.com/users/joe返回一个指向http://examples.com/uses/joe/bookmarks的链接。
除非您正在编写一个愚蠢的网络爬虫(即使这样我也想知道),您仍然需要在编译时教客户每个链接的含义。也就是说,客户端需要知道“书签 URI”返回书签资源的 URI,然后将控制权交给特殊的书签处理算法。您不能只是盲目地将链接传递给某些通用客户端方法。因为无论如何你都需要这个逻辑:
客户端在运行时找出 URI 与在编译时提供它(使http://example.com/users/bookmarks成为根 URI)有什么区别?
为什么使用
http://example.com/users/joe/bookmarks/2
首选链接id="2"
?
我能想到的唯一好处是能够随着时间的推移更改非根 URI 的路径,但这会破坏缓存的链接,因此无论如何它并不是真正可取的。我错过了什么?