这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天
本系列文章记录了我学习开发一个用户微服务的过程,主要使用kitex进行微服务开发,gorm作为orm。本项目使用etcd作为服务注册中心。
这是第一篇,本篇我们主要看一下项目的整体结构。
用户微服务项目结构
我们在cmd中存放测试用的client,gorm-gen的代码,migrateSchema数据库表的迁移代码。
- client内主要为测试服务api的客户端程序。
- gorm-gen是orm中间层代码生成工具,gormGen中gen.go存放的是生成脚本,用于从dal/model中读取定义号的模型,然后生成数据库的操作代码。
- migrateSchema利用db.AutoMigrate来将定义好的模型迁移到数据库。
dal中存放所有数据相关的代码。目录中model中存放定义的模型,用于gorm生成表。query是gorm-gen自动生成的代码,用于数据库增删改查的代码。initdb.go 为数据库的启动代码,我们在这里实现了一个init函数,用于main.go中进行数据库初始化连接。
idl中存放接口文件,user.thrift定义微服务的接口,后续使用kitex生成代码。
其余文件除了Dockerfile,README.md与service外均为kitex生成的代码,我们需要修改的主要是main.go和handle.go,前者是程序入口,我们后续需要在这里对程序进行设置,后者是接口的handle方法存在的地方,我们需要在这里完成api的逻辑实现。
下一篇,我们会着重介绍数据层的实现以及gorm-gen的使用方法。
(ps. 不好意思分成了很多篇短文,都是任务=,=,没办法)