例如要一个用于 API 输入的 UserDTO ,除了 Group 这个根据外键关联的属性外都要 api 输入,正常的做法是复制一个 Model 出来把多余的删掉,然后还要写一个 Convert 方法把属性逐个复制以从 DTO 转换成 User Model ,可维护性很差,改一个属性要改 3 遍。

1 iold Mar 7, 2023 via iPhone AutoMapper |
2 tcp Mar 7, 2023 via iPhone 如果 Model 不复杂,可以用匿名对象 |
3 DTCPSS Mar 7, 2023 DTO 其实适合 record |
4 jmjgeminix Mar 7, 2023 AutoMapper 或者 Mapster |
5 oppoic Mar 7, 2023 就用 UserDTO ,Group 字段后端查询赋值 |
6 deali Mar 7, 2023 我用的也是 AutoMapper |
7 thtznet Mar 7, 2023 Mapster 映射,但是我仍然觉得 JAVA 或者 C# 采用 class 做 DTO 的方式仍然不够优雅,class 的语法局限性,所以我现在尽可能使用 gRPC 来做接口,绕开 class 的 DTO 。 |
8 PerFectTime Mar 7, 2023 Mapster |