如何防止DTO对象混乱?

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

我正在使用DTO pattern,我正在使用Auto Mapper库甚至帮助将域对象映射到DTO对象,并且效果很好。

现在我的应用程序变大了,我发现自己需要许多支持不同数据需求的DTO对象。

例如,假设我的应用程序显示了一个雇员列表,每个雇员在我的应用程序中都有年龄属性和薪水属性。

在我的用户界面中,我仅在一页上显示所有雇员的列表,在另一页中,我显示不同雇员的部门名称和每一个雇员的数量的列表,在另一页上,我显示统计信息关于每个平均薪水,部门中平均年龄员工的总薪水等...

考虑到我有很多部门和很多员工(说成百万的员工和数千个部门,太多了,客户无法自行计算统计信息)

我的问题是,您将如何构建一个无需创建许多DTO即可为客户端提供服务的API?并且没有进行不必要的计算?例如:在一个流程中计算部门中的雇员数量而不计算平均工资,如果平均工资对于提高api的响应速度不感兴趣,则不计算平均工资;在另一种情况下,则同时计算两者的工资。

还有其他方法可以使这种方法更有效吗?

api oop architecture dto
1个回答
0
投票

GraphQL是一种可能的选择。它是Facebook开发的一种工具,用于检索其域的特定部分而无需检索整个对象。

这对于检索先前存在的域数据非常有效。对于calculation数据(您提到的雇员人数和平均工资),它的效果不佳。只要这些是(部门的)定义的属性,就可以了。

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