这是我参与「第五届青训营」笔记创作活动的第5天
大项目基础架构图
今天将api部分和user部分结合起来,整体测试功能的正确性,完成用户的注册和登录功能,以下作说明记录:
1. 在wsl2环境下安装etcd
参考链接:Releases · etcd-io/etcd (github.com)
安装完成后,执行以下命令:
etcd启动成功,效果如下:
注:若使用docker环境配置,将不需要如此安装,直接修改配置文件即可,很方便。
2. 启动api服务
在api文件夹下使用go build命令,生成./api文件,直接运行即可:
从日志可以看到,该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文件,直接运行即可:
从日志可以看到,该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"
}'
注册成功:
注册失败:
(2) 用户登录
执行命令:
curl --location --request POST '127.0.0.1:8080/douyin/user/login' --header 'Content-Type: application/json' --data-raw '{
"username":"whitolf",
"password":"123456"
}'
登陆成功:
登录失败:
小结
初步将整个大项目的一小部分功能跑通,还是挺有成就感的。美中不足的是,大部分代码都借鉴了官方提供的easy_note项目中的api和user部分,还需要花时间去理解一些功能实现的细节。