协议商定问题
我在做一个功能,访问http接口获取一些绘制图形的数据,数据内容使用json表达,刚开始开发的时候,我发文档告诉对方给我传如下格式的json
{
"content":{
"sid": "20bc9042224d4bd88e464e20b84f6ac6", //string 视频通道sid
"ishow": 0, //int 是否显示图形
"screenwidth": 1, //int 平台屏幕的宽
"screenheight": 1, //int 平台屏幕的高
"shape": [
{
"type":"arrow", //string 箭头类型
"startx":1.00, //double 起始点x
"starty":1.00, //double
"endx":1.00, //double 结束点x
"endy":1.00 //double
},
{
"type": "circle", //string 圆类型
"centerx":1.00, //double 圆心x
"centery":1.00,
"xradius":1, //int x半径
"yradius":1
},
{
"type":"rect", //string 矩形类型
"ltpointx":1.00, //double 左上角顶点x
"ltpointy":1.00,
"width":1, //int 宽
"height":1
}
]
},
"count": 0,
"statusCode": "API-COMMON-INF-OK",
"statusMessage": ""
}
最后到联调的时候,对面发来的实际数据如下,
{
"content":{
"ishow":1,
"screenheight":691,
"screenwidth":1286,
"shape":[
{
"centerx":0.0,
"centery":0.0,
"endx":0.0,
"endy":0.0,
"height":83,
"ishow":0,
"ltpointx":141.0,
"ltpointy":456.0,
"screenheight":0,
"screenwidth":0,
"sid":"",
"startx":0.0,
"starty":0.0,
"type":"rect",
"width":192,
"xradius":0,
"yradius":0
},
{
"centerx":0.0,
"centery":0.0,
"endx":0.0,
"endy":0.0,
"height":108,
"ishow":0,
"ltpointx":642.0,
"ltpointy":304.0,
"screenheight":0,
"screenwidth":0,
"sid":"",
"startx":0.0,
"starty":0.0,
"type":"rect",
"width":200,
"xradius":0,
"yradius":0
}
],
"sid":"0ef3173e-e248-45cc-bba1-58f0dfcd5953"
},
"count":0,
"statusCode":"API-COMMON-INF-OK",
"statusMessage":"成功"
}
可以看见,实际发来的变的冗余了,但是数据是可以正常使用,我问他为什么这么发,他说这样比较省事,我就有点无语了,现在项目节点快到了,双方都不会再大改代码了,这件事可能就这样了。虽然这个功能很简单,但我认为以后会因为这个事出问题。
所有我现在有个疑惑,两个部门进行数据交互是不是应该严格按照定好的协议来?还是说,发出的数据可以不严格按照协议来,功能可以跑通就行
我一直都是做功能开发,很少直接参与过协议的设计,希望可以帮忙解惑一下