3

我有一个 JAX-RS 服务(我使用 Jersey),现在我必须做客户端。我想知道你们是如何处理模型对象的。您是否将模型类放在不同的 jar 中以便在客户端和服务器之间共享它?您总是使用 DTO 还是有时(总是?)返回 jpa 实体。

我必须使用的服务(我没有创建它但我可以修改它)经常返回实体,所以我想知道如果我将这些类外部化是否有点奇怪。

你怎么看?你是用来做什么的?

4

1 回答 1

3

这取决于项目的复杂性以及您在其中使用 JAX-RS 的目的:

  • 对于非常简单的项目,我不会再创建一个 DTO 层
  • 对于像您这样的项目,它似乎使用 JAX-RS 只是将数据从 java 客户端移动到 java 服务器,我也不会再创建一层。那是因为您负责两端(客户端和服务器),并且因为您在两个地方重用相同的对象(将它们放在单独的 jar 和 maven 模块中是个好主意)
  • 对于使用 JAX-RS 向外部客户端公开 API 的项目,最好使用 DTO 将模型与 API 分开,这样它们就可以独立发展。例如,您并不总是希望通过 API 公开所有字段,或者在更改模型中的某些内容时破坏您的客户端。

稍后编辑

  • 对于仅将模型数据字段的子集传输到客户端的项目,出于效率原因,DTO 层很有用
于 2012-09-04T05:36:24.180 回答