我正在为一个由另一个团队构建的API开发Angular 4前端。 API遵循HATEOAS并为我提供每个响应的超媒体链接。
我知道API的形状,我想我可以简单地将URL硬编码到Angular Services中。然而,一位同事(他是一名后端开发人员)试图说服我,我应该充分利用超媒体,因为它意味着前端和后端之间的耦合更少(如果API发生变化,可能会导致破坏)。
但是,我甚至不知道如何使用Angular的内置Http
服务实现简单的HATEOAS模式。如何以不将所有服务连接在一起并使其难以测试的方式存储/共享超媒体/ URL信息?似乎没有任何例子。
尝试创建一个HATEOAS友好的HTTP客户端甚至是一个好主意,还是可能不值得麻烦?
答案 0 :(得分:1)
您的同事是对的,您应该使用后端提供的元信息。通过这种方式,您不会对不属于那里的客户负责。客户为什么要知道从哪里获取实体?存储实体(实际上是一般的数据)是后端的责任。后端拥有数据,它决定在何处放置数据,如何访问数据,何时更改位置或持久性类型,以及与存储数据相关的任何内容。
如何以不将所有服务连接在一起并使其难以测试的方式存储/共享超媒体/ URL信息?
为什么你认为使用HATEOAS会让测试变得更难?它实际上没有使用它会使测试变得更难,因为URL是静态的,这使得后端不可存根。
您可以从后端响应中提取信息,并将其作为元信息存储在角度模型中,_meta
键或类似内容上。