本文开始,我们会出一个系列文章跟大家详细展示一个 go-zero
微服务实例,整个系列分十三篇文章,目录结构如下:
- go-zero 实战 - 服务划分与项目创建
- go-zero 实战 - User API Gateway
- go-zero 实战 - User Login
- go-zero 实战 - User Register
- go-zero 实战 - User Userinfo
- go-zero 实战 - Food API Gateway
- go-zero 实战 - Food Search
- go-zero 实战 - Food AddFood
- go-zero 实战 - Food DeleteFood
- go-zero 实战 - Food Foodlist
- go-zero 实战进阶 - rpc 服务
- go-zero 实战进阶 - 用户管理 rpc 服务
- go-zero 实战进阶 - 食材管理 rpc 服务
期望通过本系列文章带你在本地利用 go-zero
快速开发一个《食谱指南》系统,让你快速上手微服务。
服务划分
一个《食谱指南》项目可划分为:用户管理服务(usermanage)和食物管理服务(foodmanage)
每个服务都可以再分为 api
服务和 rpc
服务。 api
服务对外,可提供给 App
调用。rpc
服务则是对内的,可提供给内部 api
服务或其他 rpc
服务调用。
注意:本系列教程前十篇文章中不涉及
rpc
服务,从第十一篇文章 go-zero 实战进阶 - rpc 服务 中,我们将加入了rpc
服务介绍。
用户管理服务(usermanage)
api 服务 | 端口:8888 |
---|---|
login | 用户登录接口 |
register | 用户注册接口 |
userinfo | 用户信息接口 |
食物管理服务(foodmanage)
api 服务 | 端口:8889 |
---|---|
search | 食材搜索接口 |
addfood | 新增食材接口 |
deletefood | 删除食材接口 |
foodlist | 食材列表接口 |
项目创建
- 创建
FoodGuides
工程
# 创建 golang 工程
$ mkdir -p desktop/FoodGuides && cd desktop/FoodGuides
# 创建 go module
$ go mod init FoodGuides
go: creating new go.mod: module FoodGuides
- 创建
common
目录
$ mkdir common
- 创建
service
目录
$ mkdir service && $ cd service
- 创建
usermanage api
,usermanage model
目录
$ mkdir -p usermanage/api
$ mkdir -p usermanage/model
- 创建
foodmanage api
,foodmanage model
目录
$ mkdir -p foodmanage/api
$ mkdir -p foodmanage/model
- 最终
FoodGuides
项目目录
➜ FoodGuides:
$ tree
.
├── common # 通用库
├── service # 服务
│ ├── foodmanage
│ │ ├── api # food api 服务
│ │ └── model # food 数据模型
│ └── usermanage
│ ├── api # user api 服务
│ └── model # user 数据模型
└── go.mod
这样我们就初步完成了项目的创建。