微服务 Restful API - DTO 与否?现在,我的问题仅公开域对象的优点缺点
2022-09-01 12:59:46
我想在微服务的上下文中重新提出这个问题。这是原始问题的引用。
我目前正在为一个项目创建一个REST-API,并且一直在阅读有关最佳实践的文章。许多人似乎反对DTO,只是简单地公开了领域模型,而另一些人似乎认为DTO(或用户模型或任何你想称之为它的东西)是不好的做法。就个人而言,我认为这篇文章很有意义。
但是,我也了解DTO的缺点,其中包含所有额外的映射代码,域模型可能与DTO对应物100%相同等等。
现在,我的问题
我更倾向于在应用程序的所有层中使用一个对象(换句话说,只是公开域对象,而不是创建DTO并手动复制每个字段)。我的 Rest 协定与域对象中的差异可以使用 Jackson 注释(如 or 或 等)来解决)。或者,如果有一两个字段需要转换,而使用Jackson Annotation无法完成,那么我将编写自定义逻辑来处理这种情况(相信我,在我5年多的Rest服务之旅中,我甚至没有遇到过这种情况)@JsonIgnore
@JsonProperty(access = Access.WRITE_ONLY)
@JsonView
我想知道我是否因未将域复制到DTO而错过了任何真正的不良影响