不规范的服务端接口开发

背景
最近在做一个一体机的APP,跟某工程师做接口的对接,发现接口返回的数据极为混乱,虽说都是Json串,但是给客户端解析数据带来了极大的困难,希望能给做接口的看看这篇文章,引以为戒。

1.data数据返回不规范
不规范:

"data": [
          id: "1"
          name: “TCL电视"
 ]

规范:

"data": {
          id: "1"
          name: “TCL电视"
 }

2.列表返回不规范
不规范:

"goods_list": {
     "1":{
          id:"1"
          name:"TCL电视"
     },
     "2":{
          id:"1"
          name:"TCL电视"
     }
}

不规范:

"goods_list": [
     [
          id:"1"
          name:"TCL电视"
     ],
     [
          id:"1"
          name:"TCL电视"
     ]
]

不规范:

"goods_list": {
    "颜色:::冰河银|||版本:::全网通":{
          id:"1"
          name:"TCL电视"
     },
     "颜色:::冰河银|||版本:::全网通":{
          id:"1"
          name:"TCL电视"
     }
}

规范:

"goods_list": [
     {
          id:”1"
          name:"TCL电视"
     },
     {
          id:"1"
          name:"TCL电视"
     }
]

3.返回的价格是String或int或null

"direct_price": "1407.00"
"income": 0
"freight_fee": null
"price": ""

4.没有分key和value
不规范:

  "goods_spec_img": {
            "颜色:::冰河银": "http:\/\/img.xxx.cn\/image\/goods\/2016\/1121\/583288410810d.png"
}

规范:

 "goods_spec_img": {
            "auth_image_url": "http:\/\/img.xxx.cn\/image\/goods\/2016\/1121\/583288410810d.png",
            "shop_name": "xx商城"
}

5.数据重复

 "goods_list": {
            "1": {
                "shop_id": "1",
                "shop_name": “xx商城"
                "goods_list": {
                    "169": {
                          "shop_id": "1",
                          "shop_name": “xx商城"
                          "product_id": "169",
                    }
               }
}

总结

JSON有规定好的数据格式,为什么我们不去遵守呢?我知道某些数据可能考虑到数据量太大的问题而使用特殊的格式,但是其他数据量小的应该统一一种格式吧?

  • 对象(object):一个对象以”{“开始,并以”}“结束。一个对象包含一系列非排序的名称/值对,每个名称/值对之间使用”,“分区。
  • 名称/值(collection):名称和值之间使用”:“隔开,一般的形式是: {name:value} 一个名称是一个字符串; 一个值可以是一个字符串,一个数值,一个对象,一个布尔值,一个有序列表,或者一个null值。
  • 值的有序列表(Array):一个或者多个值用,分区后,使用”[,]“括起来就形成了这样的列表,形如:` [collection,
  • 字符串:以”“括起来的一串字符。
  • 数值:一系列0-9的数字组合,可以为负数或者小数。还可以用e或者E表示为指数形式。
  • 布尔值:表示为true或者false。

猜你喜欢

转载自blog.csdn.net/primer01/article/details/76577277