[ CloudWeGo 微服务实践 - 04 ] 尝试操作数据(1)
在昨天的一节 中,我们初始化了一个项目,当然只是简单的写了一个接口,想要成为一个项目首先有一个完整的逻辑,开放了接口,自然要把数据先给存储起来,先跑通一个接口的流程。
目标
ORM 选型
如果有留意 的项目,里边搜集了大量 Go 类库和框架,包含了 Go 生态的几乎常见的项目。可能大多数的选择是 ,但是今天不想使用这款,今天试试 ,由 (今天以后要叫 )开源的产品,也是当时参加 Go 进阶训练营毛剑老师推荐的。
ent 简介
我们直接截图了官方的介绍,如下:

引入 ent
go get entgo.io/ent/cmd/ent

Post 定义
初始化 Post 结构
go run entgo.io/ent/cmd/ent init Post
执行之后,我们已经看到了一个名为 的目录:

定义 Post 字段
我们在 文件中开始定义对象结构,在 方法中:
// Fields of the Post.
func (Post) Fields() []ent.Field {
return []ent.Field{
field.UUID("id", uuid.UUID{}).Default(uuid.New).StorageKey("oid"),
field.String("title").Comment("标题").NotEmpty(),
field.Text("content").Comment("内容").NotEmpty(),
field.Time("created_at"),
field.Time("updated_at"),
}
}
我们也能在 ent 源码中发现可以设置的类型:

生成对应代码
刚刚我们使用了 ,在生成 对应代码前,我们先执行一下
go mod tidy
然后再去生成代码:
go generate ./ent
效果如下:

使用 ent
经过前几步的准备工作,我们可以尝试使用 ORM,在 CreatePost 方法尝试写入数据
在下载依赖,还没搞完,明天继续...