如果资源不是实体,是否可以在 REST API 中创建 API 端点?

问题描述 投票:0回答:1

我正在开发一个电子工资日记应用程序。在后端,我有具有“日期”属性的“条目”实体。

现在我有一个反应应用程序,它获取所有条目,按月分组,然后按天分组。而且在我看来,我在客户端做了很多不必要的工作,因为我也有“付款”,“扣除”这样的实体,我也选择它们,一般来说,获得了重载的组件。

问题。如果我在后端创建一个“WorkingMonth”服务,并在那里收集所有信息并通过某个 API 端点发布它,那么正确的程度是多少?毕竟,不存在这样的实体。

rest asp.net-core api-design clean-architecture
1个回答
1
投票

首先,在 API 设计方面,事物如何存储在持久层中不应该是一个问题。您的数据模型不是您的对象模型,您的对象模型也不是您的 API 模型。你正在意识到这一点。

这就是您的 API 代码存在的原因,不是简单地将数据库上的列(或文档的属性)映射到 JSON(或 XML)结构,而是将适合您的 code 的模型映射到适用的模型非常适合您的 API client

标准化数据并将其存储在服务器上的关系数据库中可能是有意义的,而客户端希望将一堆相关数据放在一起,以便在特定上下文中有意义。

您可能需要记住一件事,如果您只是想避免 HTTP 请求,因为客户端代码确实可以很好地遍历 API 公开的关系(这可能与数据库中的表不同),您可以考虑嵌入一些资源而不是创建新的“聚合”资源。但这确实取决于上下文。

此外,如果对客户端有意义的话,在多个资源中公开相同的数据绝对没有问题。

© www.soinside.com 2019 - 2024. All rights reserved.