[英]How to consume a HATEOAS REST API in Angular?
我正在开发一个Angular 4前端,用于由另一个团队构建的API。 API遵循HATEOAS并为我提供每个响应的超媒体链接。
我知道API的形状,我想我可以简单地将URL硬编码到Angular Services中。 然而,一位同事(他是一名后端开发人员)试图说服我,我应该充分利用超媒体,因为它意味着前端和后端之间的耦合较少(如果API发生变化,可能会导致破坏)。
但是,我对如何使用Angular的内置Http
服务实现简单的HATEOAS模式感到困惑。 如何以不将所有服务连接在一起并使其难以测试的方式存储/共享超媒体/ URL信息? 似乎没有任何例子。
尝试创建一个HATEOAS友好的HTTP客户端甚至是一个好主意,还是可能不值得麻烦?
你的同事是对的,你应该使用后端提供的元信息。 通过这种方式,您不会对不属于那里的客户负责。 客户为什么要知道从哪里获取实体? 存储实体(实际上是一般的数据)是后端的责任。 后端拥有数据,它决定在何处放置数据,如何访问数据,何时更改位置或持久性类型,以及与存储数据相关的任何内容。
如何以不将所有服务连接在一起并使其难以测试的方式存储/共享超媒体/ URL信息?
为什么你认为使用HATEOAS会使测试变得更难? 它实际上没有使用它会使测试变得更难,因为URL是静态的,这使得后端不可存根。
您可以从后端响应中提取信息,并将其作为元信息存储在角度模型中, _meta
键或类似的东西上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.