一个商城项目可拆分用户服务(user),订单服务(order),产品服务(product),支付服务(pay),售后服务(afterSale),......
每个服务都可以再分为 api 服务和 rpc 服务。api 服务对外,可提供给 app 调用。rpc 服务是对内的,可提供给内部 api 服务或者其他 rpc 服务调用。
3.1 用户服务(user)
api 服务 | 端口:8000 | rpc 服务 | 端口:9000 |
|---|
| login | 用户登录接口 | login | 用户登录接口 |
| register | 用户注册接口 | register | 用户注册接口 |
| userinfo | 用户信息接口 | userinfo | 用户信息接口 |
| ....... | ....... | ....... | ....... |
3.2 产品服务(product)
api 服务 | 端口:8001 | rpc 服务 | 端口:9001 |
|---|
| create | 产品创建接口 | create | 产品创建接口 |
| update | 产品修改接口 | update | 产品修改接口 |
| remove | 产品删除接口 | remove | 产品删除接口 |
| detail | 产品详情接口 | detail | 产品详情接口 |
| ....... | ....... | ....... | ....... |
3.3 订单服务(order)
api 服务 | 端口:8002 | rpc 服务 | 端口:9002 |
|---|
| create | 订单创建接口 | create | 订单创建接口 |
| update | 订单修改接口 | update | 订单修改接口 |
| remove | 订单删除接口 | remove | 订单删除接口 |
| detail | 订单详情接口 | detail | 订单详情接口 |
| list | 订单列表接口 | list | 订单列表接口 |
| | paid | 订单支付接口 |
| ....... | ....... | ....... | ....... |
3.4 支付服务(pay)
api 服务 | 端口:8003 | rpc 服务 | 端口:9003 |
|---|
| create | 支付创建接口 | create | 支付创建接口 |
| detail | 支付详情接口 | detail | 支付详情接口 |
| callback | 支付回调接口 | callback | 支付回调接口 |
| ....... | ....... | ....... | ....... |
3.5 创建项目目录
$ mkdir mall && cd mall
$ go mod init mall
$ mkdir common
$ mkdir service && cd service
- 创建
user api,user rpc,user model 目录
$ mkdir -p user/api
$ mkdir -p user/rpc
$ mkdir -p user/model
- 创建
product api,product rpc,product model 目录
$ mkdir -p product/api
$ mkdir -p product/rpc
$ mkdir -p product/model
- 创建
order api,order rpc,order model 目录
$ mkdir -p order/api
$ mkdir -p order/rpc
$ mkdir -p order/model
- 创建
pay api,pay rpc,pay model 目录
$ mkdir -p pay/api
$ mkdir -p pay/rpc
$ mkdir -p pay/model
├── common # 通用库
├── service # 服务
│ ├── order
│ │ ├── api # order api 服务
│ │ ├── model # order 数据模型
│ │ └── rpc # order rpc 服务
│ ├── pay
│ │ ├── api # pay api 服务
│ │ ├── model # pay 数据模型
│ │ └── rpc # pay rpc 服务
│ ├── product
│ │ ├── api # product api 服务
│ │ ├── model # product 数据模型
│ │ └── rpc # product rpc 服务
│ └── user
│ ├── api # user api 服务
│ ├── model # user 数据模型
│ └── rpc # user rpc 服务
└── go.mod
项目地址:github
上一篇《go-zero实战:让微服务Go起来——2 环境搭建》
下一篇《go-zero实战:让微服务Go起来——4 用户服务(user)》