一.创建项目

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];