ToB企服应用市场:ToB评测及商务社交产业平台

标题: 为什么要把数据模子分为:Entity,DTO,Response,Request呢?具体有什么作用 [打印本页]

作者: 花瓣小跑    时间: 2025-1-5 19:35
标题: 为什么要把数据模子分为:Entity,DTO,Response,Request呢?具体有什么作用
开辟中,我们通常把数据模子分为几个部分,探讨下他们具体都有那些作用。
1. Entity(实体)

实体类代表数据库表布局,与数据库表一一对应。
  1. // 例如 User.cs
  2. public class User : BaseEntity
  3. {
  4.     public string Username { get; set; }
  5.     public string Password { get; set; }
  6.     // ...
  7. }
复制代码
主要特点:

2. DTO(数据传输对象)

用于在不同层之间传输数据的对象。
  1. // 例如 UserDto.cs
  2. public class UserDto
  3. {
  4.     public long Id { get; set; }
  5.     public string Username { get; set; }
  6.     // 不包含密码等敏感字段
  7. }
复制代码
主要特点:

3. Request(哀求模子)

专门用于吸收 API 哀求的数据模子。
  1. // 例如 CreateUserRequest.cs
  2. public class CreateUserRequest
  3. {
  4.     [Required]
  5.     public string Username { get; set; }
  6.     [Required]
  7.     public string Password { get; set; }
  8. }
复制代码
主要特点:

4. Response(响应模子)

统一的 API 响应格式。
  1. // 例如 ApiResponse.cs
  2. public class ApiResponse<T>
  3. {
  4.     public int Code { get; set; }
  5.     public string Message { get; set; }
  6.     public T? Data { get; set; }
  7. }
复制代码
主要特点:

分层的主要好处

1. 关注点分离

2. 安全性

3. 灵活性

4. 可维护性

5. 验证和转换

现实开辟中的数据流向

graph LR    A[客户端哀求] --> B[Request模子]    B --> C[业务处理]    C --> D[Entity实体]    D --> E[数据库]    E --> F[Entity实体]    F --> G[DTO转换]    G --> H[Response模子]    H --> I[客户端响应]这种模式虽然看起来代码量增加了,但是带来的好处宏大于维护成本,特别是在大型项目中更为显着。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4