Kratos使用遇到的问题

3,463 阅读1分钟

#0 安装Kratos

go install github.com/go-kratos/kratos/cmd/kratos/v2@latest
kratos upgrade

#1 需要安装的工具

按文档的创建项目开干,容易报错以下错误

protoc-gen-go-http: program not found or is not executable
Please specify a program using absolute path or make sure the program is available in your PATH system variable
--go-http_out: protoc-gen-go-http: Plugin failed with status code 1.

其实还需要安装一下工具

# 1 先升级到最新版
sudo kratos upgrade

# 2 安装 protoc-gen-go-http
go get -u github.com/go-kratos/kratos/cmd/protoc-gen-go-http/v2
go install github.com/go-kratos/kratos/cmd/protoc-gen-go-http/v2

# 3 安装 protoc-gen-go-errors
go get -u github.com/go-kratos/kratos/cmd/protoc-gen-go-errors/v2
go install github.com/go-kratos/kratos/cmd/protoc-gen-go-errors/v2

# 4 安装
go get -u github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2
go get -u github.com/envoyproxy/protoc-gen-validate

#2 生成代码

生成代码需要用到sudo权限

kratos proto add api/v1/ota/ctrip/ctHotelCreateSubHotel.proto
sudo kratos proto client api/v1/ota/ctrip/ctHotelCreateSubHotel.proto
sudo kratos proto server api/v1/ota/ctrip/ctHotelCreateSubHotel.proto -t internal/service

如果kratos proto client生成不了http的代码

# kratos v2.0.3
sudo kratos proto client ./api/v1/ota/ctrip/CtHotelCreateSubHotel.proto -- --go-http_opt=omitempty=false

## 或者
make api

#3 运行

go generate ./...
kratos run