1、请求的唯一性:防止别人重复使用请求参数,即对应请求只能使用一次,这样就算别人拿走了请求的完整链接也是无效的。
实现方法:在请求参数中,加入时间戳:timestamp,时间戳作为请求参数之一,也进行加密。
2、表结构:参数加粗,加+号,注意这是结构体写法,而结构体又可以跟json互相转换
即
{
"code":"",
"message":"",
"AuthData":{
"access_token":"",
"expires_in":""
}
}
如果是两个+,则表明结构体内嵌结构体。如下
{
"code":"",
"message":"",
"AuthData":{
"access_token":{
"expires":""
}
}
}
3、表字段规则
1) required:表示是必须字段,发送方必须在发送消息前设置该字段的值。对于接收方,必须能够识别该字段的意思。发送之前没有设置required字段或者无法识别required字段都会引发编解码异常,导致消息被丢弃。
2) optional: 表示是可选字段,发送方在发送消息时可以有选择性的设置或者不设置该字段的值。对于接收方,如果能够识别该字段就进行相应的处理;如果无法识别,则忽略该字段消息中的其它字段正常处理。
特殊作用: 由于optional字段的特性,很多接口在升级版本中都把后来添加的字段统一设置为optional字段,这样老的版本无需升级程序也可以正常的与新的软件进行通信。但是新的字段无法识别,因为并不是每个节点都需要新的功能,因此可以做到按需升级和平滑过渡。
3) repeated: 表示该字段可以包含0~N个元素。其特性和optional一样,但是每一次可以包含多个值,可以看作是在传递一个数组的值。
uint32:无符号整型32位