如何編寫proto型別的檔案

huxiaobai_001發表於2020-08-17
syntax="proto3";  //協議  proto2 和 proto3   syntax="porto3"必須位於檔案的頂部
package hello;    //package 包名  生成的語言類放在什麼包裡面  這個package必須緊跟著syntax="proto3"
//定義service服務 會翻譯為HelloServiceClient 和 helloServiceClient 和對外暴露的 NewHelloServiceClient供客戶端呼叫
//還會翻譯為HelloServiceServer介面(SayHello方法在內 並且實現了SayHello方法並且內部會去呼叫SayHello方法) 和 對外暴露的RegisterHelloServiceServer 供服務端呼叫
service HelloService{
    rpc SayHello(MutiHelloRequest) returns (MutiHelloResponse) {};
}

message HelloRequest{

}

message HelloResponse{
    string name = 1;
}

//會翻譯成MutiHelloRequest結構體 裡面包含id []int64 | Time *MutiHelloRequest_Time | User *Use 欄位
message MutiHelloRequest{
    repeated int64 id = 1;
    message Time{
        int64 start = 1;
        int64 end = 2;
    }
    Time time = 2;
    User user = 3;
}

//會翻譯為MutiHelloResponse結構體 裡面包含 id []int64 | User []*User 的欄位
message MutiHelloResponse{
    repeated int64 id = 1;
    repeated User user = 2;
}

//會翻譯為User結構體 裡面包含了 name string 的欄位
//自定義user型別
message User{
    string name = 1;
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結

胡軍

相關文章