1、安装go、protoc和protos-gen-go
2、安装kratos命令工具
3、使用kratos new projectName 创建项目
项目目录
.
├── Dockerfile
├── LICENSE
├── Makefile
├── README.md
├── api
│ └── helloworld
│ └── v1
│ ├── error_reason.pb.go
│ ├── error_reason.proto
│ ├── greeter.pb.go
│ ├── greeter.proto
│ ├── greeter_grpc.pb.go
│ └── greeter_http.pb.go
├── app
│ └── user
│ ├── Dockerfile
│ ├── Makefile
│ ├── cmd
│ │ └── user
│ │ ├── main.go
│ │ ├── wire.go
│ │ └── wire_gen.go
│ ├── configs
│ │ └── config.yaml
│ ├── internal
│ │ ├── biz
│ │ │ ├── biz.go
│ │ │ └── greeter.go
│ │ ├── conf
│ │ │ ├── conf.pb.go
│ │ │ └── conf.proto
│ │ ├── data
│ │ │ ├── data.go
│ │ │ └── greeter.go
│ │ ├── server
│ │ │ ├── grpc.go
│ │ │ ├── http.go
│ │ │ └── server.go
│ │ └── service
│ │ ├── greeter.go
│ │ └── service.go
│ └── openapi.yaml
├── cmd
│ └── helloworld
│ ├── main.go
│ ├── wire.go
│ └── wire_gen.go
├── configs
│ └── config.yaml
├── go.mod
├── go.sum
├── internal
│ ├── biz
│ │ ├── README.md
│ │ ├── biz.go
│ │ └── greeter.go
│ ├── conf
│ │ ├── conf.pb.go
│ │ └── conf.proto
│ ├── data
│ │ ├── README.md
│ │ ├── data.go
│ │ └── greeter.go
│ ├── server
│ │ ├── grpc.go
│ │ ├── http.go
│ │ └── server.go
│ └── service
│ ├── README.md
│ ├── greeter.go
│ └── service.go
├── openapi.yaml
└── third_party
├── README.md
├── errors
│ └── errors.proto
├── google
│ ├── api
│ │ ├── annotations.proto
│ │ ├── client.proto
│ │ ├── field_behavior.proto
│ │ ├── http.proto
│ │ └── httpbody.proto
│ └── protobuf
│ └── descriptor.proto
└── validate
├── README.md
└── validate.proto
4、kratos run运行项目 项目的地址和端口配置在configs文件夹下面
5、测试接口
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": {}
}
6、pb协议 在api下面定义好协议后,执行make api 可以生成产物
虽然顺利生成了项目,但是项目的目录太多,需要对其进行简化
网友评论