gpt4 book ai didi

javascript - 如何在 Angular 中使用 HATEOAS REST API?

转载 作者:数据小太阳 更新时间:2023-10-29 03:57:03 24 4
gpt4 key购买 nike

我正在为另一个团队构建的 API 开发 Angular 4 前端。 API 遵循 HATEOAS 并为我提供每个响应的超媒体链接。

我知道 API 的结构,我想我可以毫不费力地将 URL 硬编码到 Angular 服务中。然而,一位同事(他是后端开发人员)试图说服我,我应该充分利用超媒体,因为这意味着前端和后端之间的耦合更少(如果 API 发生变化,可能会造成破坏)。

但是,我什至不知道如何使用 Angular 的内置 Http 服务来实现一个简单的 HATEOAS 模式。我将如何以一种不会将所有服务耦合在一起并使它们难以测试的方式存储/共享超媒体/URL 信息?那里似乎没有例子。

尝试创建一个 HATEOAS 友好的 HTTP 客户端是个好主意,还是不值得这么麻烦?

最佳答案

你的同事说得对,你应该使用后端提供的元信息。这样你就不会把责任推给不属于那里的客户。为什么客户端应该知道从哪里获取实体?存储实体(实际上是一般数据)是后端的责任。后端拥有数据,它决定将数据放在哪里、如何访问它、何时更改位置或持久性类型,以及与存储数据相关的任何事情。

How would I store/share the hypermedia/URL information in a way that doesn't couple all the services together and make them hard-to-test?

为什么您认为使用 HATEOAS 会使测试更难?它不会,事实上不使用它会使测试更加困难,因为 URL 是静态的,这使得后端不可 stub 。

您可以从后端响应中提取信息并将其作为元信息存储在 Angular 模型中,存储在 _meta 键或类似的东西上。

关于javascript - 如何在 Angular 中使用 HATEOAS REST API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45314692/

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