理解proto3协议
其中:
- 每个字段定义都至少由三部分组成,最简单的定义为
int64
和string
等都是字段数据类型,目前支持以下常用的数据类型:int64
- 64位整型uint64
- 无符号的64位整型uint32
- 无符号的32位整型double
- 双精度浮点数字float
- 单精度浮点数字string
- 字符串bool
- 布尔值,在JSON中为true
或者false
- - 二进制字节数组,通过JSON调用时,你需要先将数据转换为Base64格式,再传递到接口,比如:
- 一个JSON数据的内容为
{ "name": "goedge.cn", "type": "domain"}
,那么传递到bytes
类型字段的时候就需要传递base64_encode('{ "name": "goedge.cn", "type": "domain"}')
,最终值应该为eyAibmFtZSI6ICJnb2VkZ2UuY24iLCAidHlwZSI6ICJkb21haW4ifQ==
- 一个文件内容的二进制内容同样也需要Base64编码处理
- 反之,对于接口返回的响应数据来说,你需要Base64 Decode处理才能得到原始数据
repeated 字段类型 字段名 = 字段编号
表示一个数组,字段类型
部分表示字段值数组中的元素的类型,比如:repeated int64 serverGroupIds
表示serverGroupIds
是一个数组,通过JSON调用时需要传递这样格式的数据,其中int64
规定了数组中的每一项必须是一个整型;repeated string types
表示types
的值为[ "type1", "type2" ]
这样的数组repeated ServerGroup serverGroups
表示serverGroups
的只为[ serverGroup1, serverGroup2, serverGroup3 ]
这样的数组,因为ServerGroup
也是一个对象,所以我们可以展开来,最终的JSON为:[ { "id":1, "name": "分组1" }, { "id":2, "name": "分组2" }, { "id":3, "name": "分组3" } ]
有些接口参数定义为:
即可。