纯HATEOAS vs太多的服务电话

时间:2012-10-06 08:46:23

标签: web-services rest api-design hateoas

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

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

1 个答案:

答案 0 :(得分:5)

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