一.创建项目
1.1创建项目
在Linuxshare/cloud_center/目录下创建module项目
kratos new module -r https://gitee.com/go-kratos/kratos-layout.git
进入到module删除多余的文件
internal/data/greeter.go,internal/biz/greeter.go这个也删除掉
1.2创建module的proto
syntax = "proto3";
package api.module.v1;
import "google/protobuf/empty.proto";
option go_package = "module/api/module/v1;v1";
service Module {
rpc CreateModule (CreateModuleRequest) returns (CreateModuleReply);
rpc UpdateModule (UpdateModuleRequest) returns (google.protobuf.Empty);
rpc DeleteModule (DeleteModuleRequest) returns (google.protobuf.Empty);
rpc GetModule (GetModuleRequest) returns (CreateModuleReply);
rpc ListModule (PageInfo) returns (ListModuleReply);
}
// 分页
message PageInfo{
uint32 pn = 1;
uint32 pSize = 2;
}
message CreateModuleRequest {
int32 modCompanyid=1;
int32 modDepartid=2;
int32 modProid=3;
int32 modParentsid=4;
string modName=5;
string modAliasname=6;
string modUrl=7;
int32 modState=8;
string modIco=9;
int32 modOptid=10;
int32 modSourceId=11;
int32 authLevel=12;
}
message CreateModuleReply {
int32 modId=1;
int32 modCompanyid=2;
int32 modDepartid=3;
int32 modProid=4;
int32 modParentsid=5;
string modName=6;
string modAliasname=7;
string modUrl=8;
int32 modState=9;
string modIco=10;
int32 modOptid=11;
int32 modSourceId=12;
int32 authLevel=13;
}
message UpdateModuleRequest {
int32 modId=1;
int32 modCompanyid=2;
int32 modDepartid=3;
int32 modProid=4;
int32 modParentsid=5;
string modName=6;
string modAliasname=7;
string modUrl=8;
int32 modState=9;
string modIco=10;
int32 modOptid=11;
int32 modSourceId=12;
int32 authLevel=13;
}
message UpdateModuleReply {}
message DeleteModuleRequest {
int32 modId=1;
}
message GetModuleRequest {
int32 modId=1;
}
message GetModuleReply {}
message ListModuleRequest {}
message ListModuleReply {
int32 total = 1;
repeated CreateModuleReply data = 2;
}
创建完后,使用make api 生成proto
1.2.3生成错误的error_reason.proto
代码如下:
syntax = "proto3";
// 定义包名
package api.kratos.v1;
import "errors/errors.proto";
// 多语言特定包名,用于源代码引用
option go_package = "module/api/module/v1;v1";
enum ErrorReason {
// 设置缺省错误码
option (errors.default_code) = 500;
// 为某个枚举单独设置错误码
USER_NOT_FOUND = 0 [(errors.code) = 404];
CONTENT_MISSING = 1 [(errors.code) = 400];
}