在正式创建项目之前,我们还需要重新梳理一下各服务之间的划分。
我将该项目命名为 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
go mod init FoodGuides
在 FoodGuides
创建两个文件夹
mkdir -p usermanage & mkdir -p foodmanage
这样我们就初步完成了项目的创建。