====== 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*