项目初始化
环境准备
首先,您需要安装好对应的依赖环境,以及工具:
建议开启GO111MODULE
go env -w GO111MODULE=on
kratos 命令工具
kratos 是与 Kratos 框架配套的脚手架工具,kratos 能够
- 通过模板快速创建项目
- 快速创建与生成 protoc 文件
- 使用开发过程中常用的命令
- 极大提高开发效率,减轻心智负担
详细使用请参照 CLI工具
为使接下来的步骤能够顺利进行,需要 安装 kratos 命令工具
创建项目
# 使用默认模板创建项目
kratos new helloworld
# 如在国内环境拉取失败, 可 -r 指定源
kratos new helloworld -r https://gitee.com/go-kratos/kratos-layout.git
# 进入项目目录
cd helloworld
# 拉取项目依赖
go mod download
如果拉取依赖遇到网络问题,建议 配置GOPROXY
代码生成与运行
生成
# 安装依赖
go get github.com/google/wire/cmd/wire@latest
# 生成所有proto源码、wire等等
go generate ./...
运行
# 运行项目
kratos run
# 输出
INFO msg=config loaded: config.yaml format: yaml # 默认载入 configs/config.yaml 配置文件
INFO msg=[gRPC] server listening on: [::]:9000 # gRPC服务监听 9000 端口
INFO msg=[HTTP] server listening on: [::]:8000 # HTTP服务监听 8000 端口
测试接口
测试HTTP接口
相关逻辑代码位于 internal/service/greeter.go
curl 'http://127.0.0.1:8000/helloworld/kratos'
# 输出:
{
"message": "Hello kratos"
}
curl 'http://127.0.0.1:8000/helloworld/error'
# 输出
{
"code": 404,
"reason": "USER_NOT_FOUND",
"message": "user not found: error",
"metadata": {}
}
项目模板
Kratos 通过 Git 仓库进行模板管理,创建项目时通过拉取模板进行初始化。对应模板地址:
⭐ 项目布局详解 Go工程化 - Project Layout 最佳实践
自定义项目模板
您也可以自行创建模板,以减免每次都需要进行的繁琐工作