概念: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
//参考2
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。