客户端使用HATEOAS有什么意义?
据我目前的了解,HATEOAS基本上是与每个响应链接一起发送以及下一步操作的信息。在互联网上可以轻松找到一个简单的示例:银行系统和帐户资源。该示例显示了对帐户资源的GET请求后的此响应 GET /account/12345 HTTP/1.1 HTTP/1.1 200 OK <?xml version="1.0"?> <account> <account_number>12345</account_number> <balance currency="usd">100.00</balance> <link rel="deposit" href="/account/12345/deposit" /> <link rel="withdraw" href="/account/12345/withdraw" /> <link rel="transfer" href="/account/12345/transfer" /> <link rel="close" href="/account/12345/close" /> </account> 连同数据一起,有链接告诉下一步可以做什么。如果余额为负,我们有 GET /account/12345 HTTP/1.1 HTTP/1.1 200 OK <?xml version="1.0"?> <account> <account_number>12345</account_number> <balance currency="usd">-25.00</balance> <link rel="deposit" href="/account/12345/deposit" /> </account> 这样我们只能存款。很好,如果我们使用Fiddler或通过浏览器发出请求,我们可以轻松地看到可以做什么。这样的信息对于我们发现API的功能以及服务器与客户端的分离非常有用。 但是,要点是,当我们构建客户端(例如带有Javascript的SPA或Android应用程序或许多其他东西)时,我看不到HATEOAS如何继续发挥作用。我的意思是:当我用javascript编码SPA时,我必须知道可以在API中完成什么才能编写代码。 …