写点什么

[ CloudWeGo 微服务实践 - 03 ] 尝试操作数据

用户头像
baiyutang
关注
发布于: 刚刚
[ CloudWeGo 微服务实践 - 03 ] 尝试操作数据

在昨天的一节https://entgo.io/ 中,我们初始化了一个项目,当然只是简单的写了一个接口,想要成为一个项目首先有一个完整的逻辑,开放了接口,自然要把数据线给存储起来,先跑通一个接口的流程。

ORM 选型

如果有留意 awesome-go 的项目,里边搜集了大量 Go 类库和框架,包含了 Go 生态的几乎常见的项目。可能大多数的选择是 GORM,但是今天不想使用这款,今天试试 ent,由 Facebook (今天以后要 Meta )开源的产品,也是当时参加 Go 进阶训练营毛剑老师推荐的。


ent 简介

我们直接截图了官方的介绍,如下:


引入 ent

go get entgo.io/ent/cmd/ent
复制代码



其详细用法可参看官方文档,非常的详实,并且有中文。


Post 定义

初始化 Post 结构

go run entgo.io/ent/cmd/ent init Post
复制代码


执行之后,我们已经看到了一个名为 ent 的目录:


定义 Post 字段

字段定义方法可直接参考 ent-字段 一节。

我们在 ./ent/schema/post.go 文件中开始定义对象结构,在 Field 方法中:

// 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 generate ./ent
复制代码


发布于: 刚刚阅读数: 2
用户头像

baiyutang

关注

广州 2017.12.13 加入

Microservices | Golang | Cloud Nitive | “Smart work,Not hard”

评论

发布
暂无评论
[ CloudWeGo 微服务实践 - 03 ] 尝试操作数据