Kitex+Hertz+Gorm+Etcd实现部分功能 | 青训营笔记

152 阅读2分钟

这是我参与「第五届青训营」笔记创作活动的第5天

大项目基础架构图

大项目基础架构.png

今天将api部分和user部分结合起来,整体测试功能的正确性,完成用户的注册和登录功能,以下作说明记录:

1. 在wsl2环境下安装etcd

参考链接:Releases · etcd-io/etcd (github.com)

image.png

安装完成后,执行以下命令:

image.png

etcd启动成功,效果如下:

image.png

注:若使用docker环境配置,将不需要如此安装,直接修改配置文件即可,很方便。

2. 启动api服务

在api文件夹下使用go build命令,生成./api文件,直接运行即可:

image.png

从日志可以看到,该http服务提供了3个接口,分别是Hertz框架自带的/ping接口,和api部分设计的用户登录接口/douyin/user/login和用户注册接口/douyin/user/register。该http服务的端口号是8080。

3. 启动user服务

在user文件夹下使用sh build.sh命令,此时会生成一个output文件夹。然后,再使用sh output/bootstrap.sh命令,生成./user文件,直接运行即可:

image.png

从日志可以看到,该Kitex框架提供的rpc服务开启了9000端口,并且成功在etcd中完成了服务的注册工作。

4. 使用curl命令测试接口可用性

(1) 用户注册

执行命令:

curl --location --request POST '127.0.0.1:8080/douyin/user/register' --header 'Content-Type: application/json' --data-raw '{
    "username":"whitolf",
    "password":"123456"
}'

注册成功:

image.png

注册失败:

image.png

(2) 用户登录

执行命令:

curl --location --request POST '127.0.0.1:8080/douyin/user/login' --header 'Content-Type: application/json' --data-raw '{
    "username":"whitolf",
    "password":"123456"
}'

登陆成功:

image.png

登录失败:

image.png

小结

初步将整个大项目的一小部分功能跑通,还是挺有成就感的。美中不足的是,大部分代码都借鉴了官方提供的easy_note项目中的api和user部分,还需要花时间去理解一些功能实现的细节。