Tag: 哈多阿

REST API – DTO或不?

我目前正在为一个项目创build一个REST-API,并且正在阅读关于最佳实践的文章。 许多人似乎反对DTOs,只是公开领域模型,而其他人似乎认为DTO(或用户模型或任何你想称之为)是不好的做法。 我个人认为这篇文章很有意义。 但是,我也了解DTO的所有额外映射代码的缺陷,可能与它们的DTO对等体完全相同的域模型等等。 我们的API大部分都是为了让其他客户端可以使用数据而创build的,但是如果我们做得正确的话,我们也可以在我们自己的Web GUI上使用它。 问题是我们可能不想将所有域数据公开给其他客户端用户。 大部分数据只会在我们自己的Web应用程序中有意义。 另外,我们可能不希望在所有场景中公开有关对象的所有数据,特别是与其他对象的关系等等。 例如,如果我们公开一个特定对象的列表,我们不一定要公开整个对象的层次; 使对象的孩子不会暴露,但可以通过链接发现(仇恨)。 我应该如何解决这个问题呢? 我正考虑在我们的领域模型上使用Jackson mixins来控制在不同场景下会暴露的数据。 还是应该一直使用DTO – 即使有缺点和争议?