相关疑难解决方法(0)

为什么JPA有@Transient注释?

Java有transient关键字.为什么JPA @Transient不是简单地使用已经存在的java关键字?

java annotations jpa transient java-ee

269
推荐指数
7
解决办法
29万
查看次数

REST API - DTO或不是?

我目前正在为一个项目创建一个REST-API,并且正在阅读关于最佳实践的文章.许多人似乎反对DTO,只是暴露域模型,而其他人似乎认为DTO(或用户模型或任何你想称之为的)是不好的做法.就个人而言,我认为这篇文章很有意义.

但是,我也理解DTO的缺点,包括所有额外的映射代码,可能与其DTO对应物100%相同的域模型等等.

我们的API主要是为了让其他客户端可以使用数据而创建的,但是如果我们做得对,我们也希望尽可能将它用于我们自己的Web GUI.

问题是我们可能不希望将所有域数据公开给其他客户端用户.大部分数据只在我们自己的Web应用程序中才有意义.此外,我们可能不希望在所有方案中公开有关对象的所有数据,尤其是与其他对象的关系等.例如,如果我们公开特定对象的列表,我们不一定要暴露整个对象层次结构; 这样对象的孩子就不会暴露,但可以通过链接(hateoas)发现.

我该如何解决这个问题?我正在考虑在我们的域模型上使用Jackson mixins来控制在给定不同场景的情况下会暴露哪些数据.或者我们应该一直使用DTO - 即使考虑到它的缺点和争议?

java rest spring dto hateoas

133
推荐指数
4
解决办法
6万
查看次数

标签 统计

java ×2

annotations ×1

dto ×1

hateoas ×1

java-ee ×1

jpa ×1

rest ×1

spring ×1

transient ×1