6

我正在尝试构建一个应该为我的 UI 提供动力的 RESTful Web 服务。如果我遵循纯粹的 HATEOAS 原则,我应该只在集合中公开单个资源的 URI。现在,假设我有一个父子关系,每个父级可以有大约 50 个子级,并且 UI 需要在单击父级时也显示所有子级的部分数据。

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

4

1 回答 1

5

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

于 2012-10-07T01:14:11.447 回答