我一直在试图愉快地为HATEOAS在第一时间,用的Web App适合真的很好,因为当用户浏览“节点”的树。
每次用户点击一个链接到一个节点上时,服务器返回该节点并为相关的票据数据的服务器的URL数据。
HATEOAS响应正文:
{"description":"A good node!",
"category":"IDEAL",
"placement":"Q16","
"_links":{"self":{"href":"http://localhost:8081/position?id=393"}},
"_embedded":{
"parent":
{"placement":"root","category":"IDEAL","_links":{"self":{"href":"http://localhost:8081/position?id=384"}}},
"next_nodes":[
{"placement":"Q13","category":"GOOD","_links":{"self":{"href":"http://localhost:8081/position?id=362"}}}
{"placement":"J10","category":"BAD","_links":{"self":{"href":"http://localhost:8081/position?id=365"}}}
]}}
当单页的Web应用程序的客户端显示该节点和它的到其他节点关系的数据,用户点击指示遍历到一个新的节点,该网络应用程序的客户端获取供给下一个服务器URL从HATEOAS的数据。
这也提供HATEOAS的承诺 - 状态是在响应身体,是为下一个状态的服务器的URL,所以Web应用程序客户端永远不会需要知道比第一根URL的任何其他。
然而,这散花(显然)时,(显然)的用户说:“我希望有一个URL(客户端URL)此节点,这样我就可以回到它”。
对于使用HATEOAS的Web应用程序客户端,可在“当前节点”的仅表示是“_self”链接。这是不透明的。
那么,你如何嵌入在Web客户端的路由/链接为用户保存并返回吗?
在上面我想象我的应用程序发现自己被迫还与Web客户端,然后将被迫重建该位置上的服务器URL共享位置ID。
这是HATEOAS的预期效果?这似乎在面值几乎完全打破它,但肯定有一些基本的东西我失踪?
我已经使用的URL,例如在过去的解决了这个:
https://webapplication.example.org/#http://api.example.org/some/resource