Gar*_*ias 4 java rest api-design
我面临 API 设计问题。考虑以下流程:
正如您所看到的,我有 2 个类来代表我的模型(SomethingDTO和SomethingResponse),还有 2 个类来代表第 3 方模型(3rdPartyRequest和3rdPartyResponse)。我正在使用映射器提供从 3rdPARty 模型类到我的模型类的转换。
问题是:这 4 个类都具有完全相同的属性。
我应该在所有这些类中重复这些属性吗?我应该在整个流程中只使用一个 DTO 类吗?
解决这个问题的最佳实践(或模式)是什么?
谢谢
正如我之前回答的那样,使用 DTO 有助于将持久性模型与 API 模型解耦。所以你似乎在做正确的事。
问题是:这 4 个类都具有完全相同的属性。
将 API 模型与第三方 API 模型解耦始终是一个好主意。如果第三方 API 更改其合同,您也不会破坏您的客户。因此,为每个 API 使用不同的模型。
并坚持使用映射框架,例如MapStruct,以减少样板代码。您可能还想考虑使用Lombok为您生成 getter、setter、equals()和hashcode()方法toString()。
我应该在所有这些类中重复这些属性吗?我应该在整个流程中只使用一个 DTO 类吗?
如果请求和响应模型都包含相同的字段集,那么您可以从一个类开始,用于表示每个API 的请求和响应负载。当字段开始不同(请求有效负载与响应有效负载不同)时,您可以创建新模型来表示每个有效负载。
从长远来看,对请求和响应使用不同的模型将为您提供灵活性,确保您仅公开和接收您想要的属性。
| 归档时间: |
|
| 查看次数: |
4541 次 |
| 最近记录: |