https://gnuwin32.sourceforge.net/packages/make.htm
go install github.com/cloudwego/cwgo@latest
https://github.com/protocolbuffers/protobuf/releases
go install github.com/cloudwego/kitex/tool/cmd/kitex@latest
go get github.com/kitex-contrib/registry-consul
在项目根目录下
mkdir rpc_gen
在app目录下
mkdir -p auth user product cart order checkout payment
在./rpc_gen目录下执行
cwgo client --type RPC --service auth --module Go-Mall/rpc_gen --I ../idl --idl ..\idl\auth.proto
在./rpc_gen目录下执行
cwgo client --type RPC --service user --module Go-Mall/rpc_gen --I ../idl --idl ..\idl\user.proto
在./rpc_gen目录下执行
cwgo client --type RPC --service product --module Go-Mall/rpc_gen --I ../idl --idl ..\idl\product.proto
在./rpc_gen目录下执行
cwgo client --type RPC --service cart --module Go-Mall/rpc_gen --I ../idl --idl ..\idl\cart.proto
在./rpc_gen目录下执行
cwgo client --type RPC --service order --module Go-Mall/rpc_gen --I ../idl --idl ..\idl\order.proto
在./rpc_gen目录下执行
cwgo client --type RPC --service checkout --module Go-Mall/rpc_gen --I ../idl --idl ..\idl\checkout.proto
在./rpc_gen目录下执行
cwgo client --type RPC --service payment --module Go-Mall/rpc_gen --I ../idl --idl ..\idl\payment.proto
在./app/auth目录下执行
cwgo server --type RPC --service auth --module Go-Mall/app/auth --pass "-use Go-Mall/rpc_gen/kitex_gen" -I ../../idl --idl ../../idl/auth.proto
在./app/user目录下执行
cwgo server --type RPC --service user --module Go-Mall/app/user --pass "-use Go-Mall/rpc_gen/kitex_gen" -I ../../idl --idl ../../idl/user.proto
在./app/product目录下执行
cwgo server --type RPC --service product --module Go-Mall/app/product --pass "-use Go-Mall/rpc_gen/kitex_gen" -I ../../idl --idl ../../idl/product.proto
在./app/cart目录下执行
cwgo server --type RPC --service cart --module Go-Mall/app/cart --pass "-use Go-Mall/rpc_gen/kitex_gen" -I ../../idl --idl ../../idl/cart.proto
在./app/order目录下执行
cwgo server --type RPC --service order --module Go-Mall/app/order --pass "-use Go-Mall/rpc_gen/kitex_gen" -I ../../idl --idl ../../idl/order.proto
在./app/checkout目录下执行
cwgo server --type RPC --service checkout --module Go-Mall/app/checkout --pass "-use Go-Mall/rpc_gen/kitex_gen" -I ../../idl --idl ../../idl/checkout.proto
在./app/payment目录下执行
cwgo server --type RPC --service payment --module Go-Mall/app/payment --pass "-use Go-Mall/rpc_gen/kitex_gen" -I ../../idl --idl ../../idl/payment.proto
在./app/client目录下执行
cwgo server --type HTTP --idl ..\..\idl\client\user_page.proto --service client -module Go-Mall/app/client -I ../../idl
在./app/client目录下执行
cwgo server --type HTTP --idl ..\..\idl\client\product_page.proto --service client -module Go-Mall/app/client -I ../../idl
在./app/client目录下执行
cwgo server --type HTTP --idl ..\..\idl\client\cart_page.proto --service client -module Go-Mall/app/client -I ../../idl
在./app/client目录下执行
cwgo server --type HTTP --idl ..\..\idl\client\order_page.proto --service client -module Go-Mall/app/client -I ../../idl
在./app/client目录下执行
cwgo server --type HTTP --idl ..\..\idl\client\checkout_page.proto --service client -module Go-Mall/app/client -I ../../idl
- golang:1.23
- busybox:latest
${v}为版本号
make build-client v=latest
make build-svc svc=auth v=latest
make build-svc svc=cart v=latest
make build-svc svc=checkout v=latest
make build-svc svc=order v=latest
make build-svc svc=payment v=latest
make build-svc svc=product v=latest
make build-svc svc=user v=latest
docker compose up
cd app/payment
go work use .
go mod tidy
go get github.com/durango/go-credit-card
项目目录结构
gomall/
├── app/
│ ├── auth/
│ │ ├── biz/
│ │ │ ├── service/
│ │ ├── conf/
│ │ │ ├── dev/
│ │ │ ├── online/
│ │ │ ├── test/
│ │ ├── log/
│ │ ├── script/
│ │ ├── .env
│ │ ├── build.sh
│ │ ├── go.mod
│ │ ├── handler.go
│ │ ├── main.go
│ ├── cart/
│ │ ├── biz/
│ │ │ ├── dal/
│ │ │ │ ├── mysql/
│ │ │ │ ├── redis/
│ │ │ ├── model/
│ │ │ ├── service/
│ │ ├── conf/
│ │ │ ├── dev/
│ │ │ ├── online/
│ │ │ ├── test/
│ │ ├── log/
│ │ ├── rpc/
│ │ ├── script/
│ │ ├── .env
│ │ ├── build.sh
│ │ ├── go.mod
│ │ ├── handler.go
│ │ ├── main.go
│ ├── checkout/
│ │ ├── biz/
│ │ │ ├── dal/
│ │ │ │ ├── mysql/
│ │ │ │ ├── redis/
│ │ │ ├── service/
│ │ ├── conf/
│ │ │ ├── dev/
│ │ │ ├── online/
│ │ │ ├── test/
│ │ ├── log/
│ │ ├── rpc/
│ │ ├── script/
│ │ ├── .env
│ │ ├── build.sh
│ │ ├── go.mod
│ │ ├── handler.go
│ │ ├── main.go
│ ├── client/
│ │ ├── biz/
│ │ │ ├── handler/
│ │ │ │ ├── cart/
│ │ │ │ ├── checkout/
│ │ │ │ ├── order/
│ │ │ │ ├── product/
│ │ │ │ ├── user/
│ │ │ ├── router/
│ │ │ │ ├── cart/
│ │ │ │ ├── checkout/
│ │ │ │ ├── order/
│ │ │ │ ├── product/
│ │ │ │ ├── user/
│ │ │ ├── service/
│ │ │ ├── utils/
│ │ ├── conf/
│ │ │ ├── dev/
│ │ │ ├── online/
│ │ │ ├── test/
│ │ ├── hertz_gen/
│ │ │ ├── api/
│ │ │ ├── client/
│ │ │ │ ├── cart/
│ │ │ │ ├── checkout/
│ │ │ │ ├── common/
│ │ │ │ ├── order/
│ │ │ │ ├── product/
│ │ │ │ ├── user/
│ │ ├── infra/
│ │ │ ├── rpc/
│ │ ├── log/
│ │ ├── middleware/
│ │ ├── script/
│ │ ├── utils/
│ │ ├── .env
│ │ ├── .hz
│ │ ├── build.sh
│ │ ├── go.mod
│ │ ├── main.go
│ ├── order/
│ │ ├── biz/
│ │ │ ├── dal/
│ │ │ │ ├── mysql/
│ │ │ │ ├── redis/
│ │ │ ├── model/
│ │ │ ├── service/
│ │ ├── conf/
│ │ │ ├── dev/
│ │ │ ├── online/
│ │ │ ├── test/
│ │ ├── log/
│ │ ├── rpc/
│ │ ├── script/
│ │ ├── .env
│ │ ├── build.sh
│ │ ├── go.mod
│ │ ├── handler.go
│ │ ├── main.go
│ ├── payment/
│ │ ├── biz/
│ │ │ ├── dal/
│ │ │ │ ├── mysql/
│ │ │ │ ├── redis/
│ │ │ ├── model/
│ │ │ ├── service/
│ │ ├── conf/
│ │ │ ├── dev/
│ │ │ ├── online/
│ │ │ ├── test/
│ │ ├── log/
│ │ ├── script/
│ │ ├── .env
│ │ ├── build.sh
│ │ ├── go.mod
│ │ ├── handler.go
│ │ ├── main.go
│ ├── product/
│ │ ├── biz/
│ │ │ ├── dal/
│ │ │ │ ├── mysql/
│ │ │ │ ├── redis/
│ │ │ ├── model/
│ │ │ ├── service/
│ │ ├── conf/
│ │ │ ├── dev/
│ │ │ ├── online/
│ │ │ ├── test/
│ │ ├── log/
│ │ ├── script/
│ │ ├── .env
│ │ ├── build.sh
│ │ ├── go.mod
│ │ ├── handler.go
│ │ ├── main.go
│ ├── user/
│ │ ├── biz/
│ │ │ ├── dal/
│ │ │ │ ├── mysql/
│ │ │ │ ├── redis/
│ │ │ ├── model/
│ │ │ ├── service/
│ │ ├── conf/
│ │ │ ├── dev/
│ │ │ ├── online/
│ │ │ ├── test/
│ │ ├── log/
│ │ ├── script/
│ │ ├── .env
│ │ ├── build.sh
│ │ ├── go.mod
│ │ ├── handler.go
│ │ ├── main.go
├── common/
│ ├── clientsuite/
│ ├── mtl/
│ ├── serversuite/
│ ├── utils/
│ ├── go.mod
├── conf/
├── db/
│ ├── sql/
│ │ ├── ini/
├── deploy/
│ ├── config/
├── idl/
│ ├── client/
├── rpc_gen/
│ ├── kitex_gen/
│ ├── rpc/
│ ├── go.mod
├── docker-compose.yaml
├── go.work
├── Makefile
├── README.md