纯HATEOAS vs太多的服务电话

Har*_*non 6 rest web-services api-design hateoas

我正在尝试构建一个RESTful Web服务,它应该为我的UI提供支持.如果我遵循纯粹的HATEOAS原则,我应该只展示集合中各个资源的URI.现在,假设我有一个父子关系,每个父母可以有50个孩子,并且UI需要在点击父母时显示所有孩子的部分数据.

如果我只使用父项公开子URI,则UI必须进行50次Web服务调用才能完成此操作.另一种方法是有一个单独的API,它将给出父节点以及有关子节点的部分信息,而不仅仅是URI.我确信这是一个很常见的问题.这里的平衡是什么?有哪些陷阱?从设计的角度来看,"唯一的URI"方法更简洁,但由于所有这些服务调用,它可能使UI非常慢并且在服务器上施加了大量负载.所以,另一种方法可能更实用.根据您的经验,哪个更好?

Dar*_*ler 5

你被误导了超媒体约束需要什么.没有任何内容表明您不能在父对象的表示中包含来自子对象的信息.事实上,这正是Hal(超媒体类型)的设计目标.