在正式创建项目之前,我们还需要重新梳理一下各服务之间的划分。
我将该项目命名为 foodguides
foodguides 项目下有两大块功能,用户管理 usermanage、食物管理 foodmanage。
分析用户管理 usermanage
用户管理 usermanage 下同样也具有两大块服务,api 服务和 rpc 服务。
api 服务需要对外提供三个 api 接口。
login: 用户登录接口register:用户注册接口userinfo:用户信息接口
rpc 服务需要对外提供三个接口。
login: 用户登录接口register:用户注册接口userinfo:用户信息接口
虽然两块服务都提供能相同的功能,但是这里我们需要区分两块服务的服务对象,api 服务是对外的,比如我们这里是 app 调用了 api 服务。 rpc 服务是对内的,比如 api 服务调用了 rpc 服务。
- 如果把
foodguides比作一个餐厅的话,那api服务相当于是服务员,rpc服务相当于是厨师。 - 服务员是直接服务客人的,客人可以找服务员说我要一份沙茶面。(
app客户端调用了api服务login接口) - 厨师是服务于服务人员的,接到客人订单后告诉厨师要一份沙茶面。(
api服务login接口调用了rpc服务login接口) - 厨师做好沙茶面后交给服务员,服务员再给客人上菜。这样就完成了一次点餐服务。(
rpc服务login接口处理完数据后后响应api服务login接口,api服务login接口响应app客户端的调用,登录成功)
这样就完成了一次服务的调用。
食物管理 foodmanage 也是同理。现有这一层的理解,对于新手来说能更好理清楚项目结构。
项目创建
在Coding中创建一个项目,选择 DevOps 模板,命名 FoodGuides
在 FoodGuides 项目中,选择代码仓库,创建一个新的代码仓库,命名 FoodGuides
在 FoodGuides 项目中,选择制品管理——制品仓库,创建一个新的制品仓库,类型选择 Docker,仓库地址命名 dockerimages。
在 FoodGuides 项目中,选择代码仓库,在仓库设置中复制 git 地址,clone 到本地。
cd 到在 FoodGuides
1 | go复制代码go mod init FoodGuides |
在 FoodGuides 创建两个文件夹
1 | go复制代码mkdir -p usermanage & mkdir -p foodmanage |
这样我们就初步完成了项目的创建。
下一篇 《go-zero教程——用户管理API Gateway》
本文转载自: 掘金