grpc套路proto檔案

huxiaobai_001發表於2020-08-18

grpc的建立也是有自己的套路的,今天我們就來寫一寫簡單套路的實現
這一篇我們只講proto

syntax="proto3"; //協議  proto2 和 proto3   syntax="porto3"必須位於檔案的頂部
package user; //package 包名  生成的語言類放在什麼包裡面  這個package必須緊跟著syntax="proto3"
//定義service服務 會翻譯為UserServiceClient 和 userServiceClient 和對外暴露的 NewUserServiceClient供客戶端呼叫
//還會翻譯為UserServiceServer介面(UserList方法在內 並且實現了UserList方法並且內部會去呼叫UserList方法) 和 對外暴露的RegisterUserServiceServer 供服務端呼叫
service UserService{
    rpc UserList(RequestUser) returns (ResponseUser){};
}
//會翻譯成RequestUser結構體 裡面包含name string | mobile string 欄位
message RequestUser{
    string name = 1;
    string mobile = 2;
}
//會翻譯成ResponseUser結構體 裡面包含 User []*User 欄位
message ResponseUser{
    repeated User user = 1;
}
//會翻譯成User結構體 裡面包含 name string | mobile string | age int64 欄位
message User{
    string name = 1;
    string mobile = 2;
    int64 age = 3;
}

目錄結構很重要 不要把兩個proto檔案放在同一個資料夾下 否則你會哭的!經驗之談不要問為什麼?
grpc套路proto檔案

有了這麼一個檔案 我們該如何生成想要的對應語言的程式碼呢?
進入到User.proto檔案所在的路徑,然後執行命令:

protoc --go_out=plugins=grpc:. User.proto

protoc工具如何配置環境變數前邊說過了哈!
這樣就會生成對應的user.pb.go檔案!
這個user.pb.go檔案裡面是大有講究的撒 proto檔案裡面註釋的你都可以去user.pb.go檔案裡面去檢視是否都有實現了!自己去看吧!

本作品採用《CC 協議》,轉載必須註明作者和本文連結

胡軍

相關文章