gpt4 book ai didi

rest - 连通性和 HATEOAS

转载 作者:行者123 更新时间:2023-12-04 02:11:07 26 4
gpt4 key购买 nike

据说在定义良好的 RESTful 系统中,客户端只需要知道根 URI 或几个众所周知的 URI,客户端将通过这些初始 URI 发现所有其他链接。我确实理解这种方法的好处(解耦客户端),但对我来说不利的是客户端每次尝试访问某些东西时都需要发现链接,即给定以下资源层次结构:

/collection1
collection1
|-sub1
|-sub1sub1
|-sub1sub1sub1
|-sub1sub1sub1sub1
|-sub1sub2
|-sub2
|-sub2sub1
|-sub2sub2
|-sub3
|-sub3sub1
|-sub3sub2

如果我们遵循“客户端只需要知道根 URI”的方法,那么客户端应该只知道根 URI,即上面的/collection1,其余的 URI 应该由客户端通过超媒体链接发现。我觉得这很麻烦,因为每次客户端需要执行 GET 时,比如在 sub1sub1sub1sub1 上,客户端是否应该首先在/collection1 上执行 GET 和返回的表示中定义的跟随链接,然后在子资源上执行更多的 GET 以到达想要的资源?还是我对连通性的理解完全错误?

此致,
苏雷什

最佳答案

当您尝试构建与使用 API 的用户代理流不匹配的 REST api 时,您将遇到这种不匹配。

考虑当您运行客户端应用程序时,用户总是会看到一些初始屏幕。如果您将此屏幕上的内容和选项与根表示相匹配,则可用链接和所需的转换将很好地匹配。当用户在屏幕上选择选项时,您可以转换到其他表示,并且客户端 UI 应该更新以反射(reflect)新的表示。

如果您尝试将 REST API 建模为某种链接数据存储库,并将客户端 UI 建模为一组独立的转换,那么您会发现 HATEOAS 非常痛苦。

关于rest - 连通性和 HATEOAS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3244111/

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