应用层之DTO

DTO(Data Transfer Object) 术语叫做数据传输对象

其实很好理解,传统的开发很多同学会把实体直接用JSON输出。

那么问题来了,以用户实体为例:

type UserModel struct {
   UserId int `gorm:"column:user_id;primary_key;auto_increment" json:"user_id"  xorm:"'user_id'"`
   UserName string `gorm:"column:user_name" json:"user_name" xorm:"'user_name'"`
   UserPwd string `gorm:"column:user_pwd" json:"-" xorm:"'user_pwd'"`
}

难道我们直接把用户密码也显示出去?

可能有的同学会说 取到值后手工把UserPwd清掉完事。

-------也不是不可以,但是就没逼格了

所以我们需要专门有个 对象用于显示用户信息

type SimpleUserInfo struct {
   Id     int    `json:"id"`
   Name   string `json:"name"`
   City string `json:"city"`
   QQ string `json:"qq"`
}

取到值后,用手工赋值或反射的方式转换。具体用不用反射根据场景定

最后更新于