====== API定义 ======
要使用Kratos定义API主要有如下步骤(([[http://go-kratos.dev/docs/component/api/|API 定义]]))(([[https://www.itshujia.com/read/kratos/2212|Kratos v2 初步学习 4-编写第一个接口]])):
- 生成 proto 模板
- 生成 [[client|client]]源码
- 生成 [[server|server]] 源码
===== 生成proto模板=====
使用如下命令:
kratos proto add api/user/v1/user.proto
该命令生成proto模板文件,我们在这个模板文件中定义对应的 REST API 和 gRPC API
===== 生成client模板 =====
使用如下命令,我们就能根据上一步得到的proto模板生成client模板:
kratos proto client api/user/v1/user.proto
生成成功后就可以看到如下的文件树(*为生成的文件):
├── api
│ └── user
│ └── v1
│ ├── user_grpc.pb.go*
│ ├── user_http.pb.go*
│ ├── user.pb.go*
│ └── user.proto
可以发现kratos在”api/user/v1”目录下生成了”user.pb.go”,”user_http.pb.go”和”user_grpc.pb.go”三个文件
===== 生成server模板=====
使用如下命令生成server模板:
kratos proto server api/user/v1/user.proto -t internal/service
执行后会生成”/internal/service/user.go”的server模板,文件树如下(*为生成的文件):
├── internal
│ ......
│ └── service
│ ├── README.md
│ ├── service.go
│ └── user.go*