信息资讯综合思念体

【Prorobuf】一文学习protobuf语法

syntax = "proto3"; // 版本

// 文档:https://developers.google.com/protocol-buffers/docs/proto3

package foo.bar; // 包

// 数据结构
message SearchRequest {
    
    // 数据类型 数据字段名称 = 数据编号。数据编号只能递增
    string query = 1;
    int32 page_number = 2;
    int32 per_page = 3;
}

message SearchData {
    int32 id = 1;
    // string name = 2; 被删除
    // int32 age = 3; 被删除
    
    // 常量的内嵌写法
    enum Sex {
        option allow_alias = true; // 将相同的值赋值给不同的常量,这个参数必须为true
        UNKNOWN = 0;
        MALE = 1;
        MAN = 1;
        FEMALE = 2;
        WOMAN = 2;
    }
    Sex sex = 4; // 注意,这里是序号,常量的默认值统一为0
    
    // 字典类型
    map<string, int> tags = 5;
    
    // 被删除的字段在兼容旧版本的情况下需标注保留
    reserved 3;
    reserved "name";
}

message SearchResponse {
    int32 ec = 1;
    string em = 2;
    
    // 内嵌数据结构 可用 SearchResponse.Page 引用
    message Page {
        int32 page = 1;
        int32 per_page = 2;
        int32 total_page = 3;
        int32 count = 4;
    }
    Page page = 4;
    
    
    // repeated 表示数组
    repeated SearchData data = 3;
}

// 总结:protobuf 与 json 数据类型对比 https://developers.google.com/protocol-buffers/docs/proto3#json

// 定义具体的RPC服务
service SearchService {
    rpc Search (SearchRequest) returns (SearchResponse);
}


«   2020年4月   »
12345
6789101112
13141516171819
20212223242526
27282930
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接
  • RainbowSoft Studio Z-Blog
  • 订阅本站的 RSS 2.0 新闻聚合

Powered By Z-BlogPHP 1.5.1 Zero Theme By 爱墙纸

百度资讯综合思念体对有机生命接触用人形终端界面 那就是
晋ICP备15000230号-1