我和我的同事最近就在 Web 应用程序中构建 REST API 的最佳实践进行了激烈的辩论,特别是在处理复杂的数据和关系时。
为了简单起见,我们的应用程序包含大量数据和复杂的关系。举个例子来说明:我们有大学,里面有系,每个系都有教授。此外,我们的数据来自不同的来源和不同的数据库。
争论的焦点是如何检索这些数据:
一方主张采用轻量级 API,该 API 返回不带相关数据的对象。例如,如果您请求一所大学,它将仅返回带有部门 ID 列表的大学对象。然后,客户端将负责根据需要进行多次调用来获取和组装完整的数据集。
另一方建议创建专用端点,根据特定用例返回完全填充的对象。因此,如果客户需要一所大学及其院系和教授,单个端点可以在一次调用中返回该数据。
不幸的是,我们无法找到关于此主题的明确、来源丰富的建议或行业标准。
任何人都可以提供指导或资源来概述此类场景的最佳实践吗?
这完全取决于用例。例如,您可能不需要获取一所大学的所有系及其教授。我相信您可能需要 api 端点:
但这完全取决于您的用例。我提供的用例可能与您需要的有所不同。