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