【发布时间】:2019-06-01 06:00:17
【问题描述】:
我使用了 gorm 库。
gorm 支持 struct 数据插入 DB 并返回。
但我的服务并不总是需要每个结构成员。
例如;
/Address => 这个 api 将只返回用户地址。
但是 orm 返回所有结构体成员。
像这样。
type User {
Name string
Address string
}
db.find(&user)
apiResponse(200,user)
所以我总是为特定的 api 返回形状制作序列化代码。
type Serializer {
Address string
}
func MakeSerializer(User u) Serializer {
return Serilizer { Address: u.Address }
}
但是上面的代码不好。
因为大多数 Api 返回形状都是不同的。所以我需要大量的serilzer代码。
告诉我这个问题的最佳实践。
谢谢你
【问题讨论】:
-
db.find(&user); apiResponse(200,&user.Address)? -
分贝。查找(&用户);意思是在用户表中获取数据库数据,而 apiResponse(200,&user.Address) 是 api 返回。只是简单的表达。
标签: json api go serialization struct