gpt4 book ai didi

rest - HATEOAS:简洁的描述

转载 作者:行者123 更新时间:2023-12-03 04:44:38 26 4
gpt4 key购买 nike

我试图对 HATEOAS 有一个清晰、简洁的理解,而且我绝不是 WRT REST 专家。 (我想我明白了,感谢这个 http://www.looah.com/source/view/2284 )。

有人可以推荐一篇同样有启发性的博客/文章 WRT HATEOAS 吗?

最佳答案

超媒体约束(以前称为 HATEOAS)是用于向用户代理提供方向的约束。

通过在返回的表示中包含链接,服务器可以消除用户代理的负担,即根据当前应用程序状态确定可以采取哪些操作并了解按顺序与谁交互实现这一目标。

由于服务器除了在请求中接收到的内容之外不知道用户代理的当前状态,因此用户代理尝试避免使用除从服务器返回的表示形式之外的状态非常重要。这可确保服务器提供的可用操作尽可能基于对用户代理状态的最完整理解。

符合超媒体约束的用户代理就像一个状态机,其中状态转换是由当前表示中可用的以下链接引起的。返回的表示成为新的状态。

这种方法的好处是可以实现非常轻量级的用户代理。它只需要很少的代码来管理状态,因为它的操作应该纯粹基于收到的响应和检索该响应的链接。 用户代理代码变得声明性和 react 性,而不是 GET this then do this 然后 do that 的命令式序列,您只需具有跟踪链接和许多 WHEN you receive this THEN do that 的实例的机制.

要了解其工作原理的示例,您只需查看网络浏览器和不使用 Javascript 的网站即可。浏览器会根据 HTML 中的链接向您提供选项。当您点击该链接时,浏览器会将其当前状态替换为您点击该链接时检索到的新状态。后退按钮有效(或至少应该),因为您正在从历史记录中的链接检索状态。浏览器不应该关心您如何到达页面,因为状态应该完全基于检索到的表示。

这种“状态管理”模型可能非常有限,因为您当前的应用程序状态基于单个服务器响应。但是,可以通过使用一组协同工作的用户代理来构建复杂的应用程序。这是 AJAX 实现的一部分,因为它允许使用不同的用户代理来发出单独的请求,因此实际上管理另一个状态机。不幸的是,大多数时候人们在开始发出 javascript 请求时会诉诸 RPC 风格,考虑到 Javascript 的自然异步性,这是不幸的。

关于rest - HATEOAS:简洁的描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9192648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com