官方文檔
https://go-kratos.dev/en/docs/getting-started/start/
1.安裝Go
參考:mac安裝go1.20
2.安裝Kratos框架
kratos依賴protobuf grpc等框架,需要先進行安裝
brew install grpc brew install protobuf brew install protoc-gen-go brew install protoc-gen-go-grpc
驗證
protoc --version protoc-gen-go --version protoc-gen-go-grpc --version
安裝kratos框架
go install github.com/go-kratos/kratos/cmd/kratos/v2@latest
3.創建項目
# 創建項目 kratos new helloworld # 也可以指定倉庫 kratos new helloworld -r https://gitee.com/go-kratos/kratos-layout.git
編譯項目
cd helloworld # 安裝依賴 make init # 生成wire依賴注入 go generate ./... # 或者使用make make generate # 生成bin執行文件 go build -o ./bin/ ./... # 或者使用make make build # 運行 ./bin/helloworld -conf ./configs 或者 kratos run # 測試 curl 'http://127.0.0.1:8000/helloworld/kratos' {"message":"Hello kratos"}%
項目結構
Kratos項目如果想要使用debug模式來運行
需要將run kind從File修改成Directory,並指定Directory爲main.go和wire_gen.go所在的目錄,否則會報
# command-line-arguments ./main.go:77:23: undefined: wireApp
同時還需要額外指定conf文件的路徑,否則會報
panic: stat ../../configs: no such file or directory
配置如下
或者修改成package,指定成package path
debug成功
如果想要添加額外的API,需要先添加proto文件
kratos proto add api/helloworld/demo.proto
編譯proto文件生成model和grpc代碼
kratos proto client api/helloworld/demo/demo.proto
或者使用make命令
make api
注意make api命令無法生成validate驗證代碼,需要額外使用make validate命令,但是kratos proto client命令是可以的
參考:https://go-kratos.dev/docs/component/middleware/validate/
生成service模板代碼
kratos proto server api/helloworld/demo/demo.proto -t internal/service
參考文檔:從0到1安裝啓動Kratos框架 和 https://go-kratos.dev/en/docs/getting-started/usage
4.Example項目
https://github.com/go-kratos/examples