我正在为另一个团队构建的API创建一个Angular 4前端。 API遵循HATEOAS,并为每个响应提供超媒体链接。如何在Angular中使用HATEOAS REST API?
我知道API的形状,我想我只需将大量网址硬编码到Angular Services中即可。但是,一位同事(谁是后端开发人员)正试图说服我,我应该充分利用超媒体,因为这意味着前端和后端之间的耦合减少(并且如果API改变,则可能会破坏)。
但是,我非常难以理解如何使用Angular的内置Http
服务实现简单的HATEOAS模式。我如何以不将所有服务连接在一起并使其难以测试的方式来存储/共享超媒体/ URL信息?那里似乎没有例子。
试图创建一个HATEOAS友好的HTTP客户端,甚至是一个好主意,或者它可能不值得麻烦?
您可以通过使用'rel'属性找到响应中的url,并将该URL存储到实体本身。例如,当您收到产品清单时,会从响应中获取每个产品详细信息页面的链接并存储在角度模型中。 –
谢谢。这只是我,还是这看起来违反了单一责任原则?为什么应该在API的细节/编辑/更新URL中嵌入产品信息? –
我不这么认为。这只是元信息,与产品实体高度一致。如果你硬编码/构造URL,那么你正在创建一个不必要的依赖关系并添加额外的责任。 –