理解proto3协议

    其中:

    • 每个字段定义都至少由三部分组成,最简单的定义为
    • int64string 等都是字段数据类型,目前支持以下常用的数据类型:
      • 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" } ]

    有些接口参数定义为:

    即可。