概念:Protocol Buffers 是一种轻便高效的结构化数据存储格式,类似于JSON、XML。但JSON和XML是使用文本进行通讯,而protobuf是使用二进制通讯,其效率远高于JSON和XML。
作用: protobuf可以直接作为前后端数据和接口的文档,减少了沟通成本,protobuf文件由后端统一定义,前端只需拷贝进项目即可
文件结构: example.proto

syntax="proto3";//protobuf编译器的版本

package book;//定义一个包名,声明命名空间

import "src/dest.proto";//导入外部proto文件,只能import当前目录或子目录下的proto文件
//使用外部package中的结构时 pakName.msgName.typeName

message Person{//使用message结构化数据
    required string name = 1;//声明一个字符串类型的字段name,字段标识号为1(必须设置)
    required init32 id = 2;//声明一个int32类型的字段id,标识号为2(必须设置)
    optional string email = 3;//optional表示email字段可以有0个或一个,不超过1个
    repeated PhoneNumber phone =4;//repeated表示该字段可任意重复多次

    enum PhoneType{//外部可用Person.PhoneType调用,enum表示枚举
        MOBILE = 0;
        HOME = 1;
        WORK = 2;
    }

    message PhoneNumber{
        repeated string number = 1;
        optional PhoneType type =2 [default =HOME];//指定默认值
    }

}

message AddressBook{
    repeated Person person_info =1;
}

//一个proto文件中可以声明多个message,在编译时他们会被编译成不同的类。

//参考1
image.png
//参考2
image.png


蔡万胜
625 声望40 粉丝

引用和评论

0 条评论