我应该是少数在文章中直接展现接口文档的人。本篇我思考了好久到底要不要解析下商品接口开发的注意点。iphone
客户端开发与服务端开发便是天敌也是兄弟。但愿本篇文章让大家减小争执,把“爱”给对方。编码
电商系统设计之中,比较复杂的接口就论商品详情的接口了,响应参数特别多,特别杂。在开发获取商品详情接口时要遵循如下几个原则url
关于查询SKU,我让个人小伙伴是这样作的,首先拿出规格和属性spa
"选择颜色": [ { "name": "银色", "id": 75 } ], "选择版本": [ { "name": "公开版", "id": 77 }, { "name": "【原厂延保版】", "id": 78 } ], "内存": [ { "name": "64G", "id": 82 }, { "name": "256G", "id": 83 } ],
没错,你没有看错,实际就是将规格做为key,属性做为value。将value[id]取出,进行拼接便可查询到对应的SKU了。设计
响应参数[规格名称][属性编码] = 拼接SKU串的必需品
规格至关于一个分组,属性其实也是拼接SKU的重要组成部分,上述数据为例code
75_77_82 = 银色,公开版,64G
/v1/product/{productId}
视频
GET
blog
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
productId | int | 0 | 商品编码 |
{ "code": 200, "message": "获取成功", "data": { "id": 131, "name": "Apple iPhone X (A1865) 64GB 深空灰色 移动联通电信4G手机", "price": "8388.00", "market_price": "8388.00", "sketch": "IPhone大法好,打九折,打九折,快剁手", "intro": "这是商品描述", "keywords":['苹果','iphone'], "attribute": { "选择颜色": [ { "name": "银色", "id": 75 }, { "name": "深空灰色", "id": 76 } ], "选择版本": [ { "name": "公开版", "id": 77 }, { "name": "【原厂延保版】", "id": 78 }, { "name": "双网通版", "id": 79 }, { "name": "无线充套装", "id": 80 }, { "name": "Airpods套装", "id": 81 } ], "内存": [ { "name": "64G", "id": 82 }, { "name": "256G", "id": 83 } ], "购买方式": [ { "name": "官方标配", "id": 84 }, { "name": "移动优惠购", "id": 85 }, { "name": "电信优惠购", "id": 86 }, { "name": "联通优惠购", "id": 87 } ] }, "album": [ { "id": 2, "name": "这是第一张图片", "url": "http://xxx.com/59ec33eaN6ddb0c54.jpg" }, { "id": 3, "name": "这是第二张图片", "url": "http://xxx.com/59ec3400Nce4cc116.jpg" } ], "radio": { "id": 1, "name": "这是一个视频", "url": "http://xxx.com/1.mp4" }, "sku": { "75_77_82_84": { "id": 1018, "name": "选择颜色:银色;选择版本:公开版;内存:64G;购买方式:官方标配;", "price": "8388.00", "stock": 83888388 }, "75_77_82_85": { "id": 1019, "name": "选择颜色:银色;选择版本:公开版;内存:64G;购买方式:移动优惠购;", "price": "8388.00", "stock": 83888388 }, "75_77_82_86": { "id": 1020, "name": "选择颜色:银色;选择版本:公开版;内存:64G;购买方式:电信优惠购;", "price": "8388.00", "stock": 83888388 }, "75_77_82_87": { "id": 1021, "name": "选择颜色:银色;选择版本:公开版;内存:64G;购买方式:联通优惠购;", "price": "8388.00", "stock": 83888388 }, "75_77_83_84": { "id": 1022, "name": "选择颜色:银色;选择版本:公开版;内存:256G;购买方式:官方标配;", "price": "8388.00", "stock": 83888388 }, "75_77_83_85": { "id": 1023, "name": "选择颜色:银色;选择版本:公开版;内存:256G;购买方式:移动优惠购;", "price": "8388.00", "stock": 83888388 } } } }
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
id | int | 0 | 商品编码 |
name | string | - | 商品标题 |
price | double | 00.00 | 商品价格 |
keywords | string | - | 商品关键字 |
market_price | double | 00.00 | 市场价格 |
virtual | int | 0 | 虚拟销量 |
sketch | string | - | 商品简述 |
intro | string | - | 商品详情 |
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
album[] | array | [] | 商品轮播图 |
id | int | 0 | 资源编码 |
name | string | - | 图片名称 |
url | string | - | 资源路径 |
无视频则返回 []
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
radio[] | array | [] | 商品视频 |
id | int | 0 | 资源编码 |
name | string | - | 视频名称 |
url | string | - | 资源路径 |
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
attribute | array[] | [] | 商品属性 |
[(attr_name)] [] | array[] | [] | 属性名称 |
name | string | - | 属性项名称 |
id | int | 0 | 属性项编码 |
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
sku[] | array[] | [] | 商品sku |
[(option_id)] [] | array[] | 商品SKU查询办法为 attribute(attr_name) 拼接 | |
id | int | 0 | sku编码 |
name | string | - | sku 名称 |
price | double | 00.00 | 商品价格 |
stock | int | 0 | 商品库存 |
字不在多,讲清楚就行,感谢你看到这里,但愿本篇文章能够帮助到你,有疑问能够在评论区讨论,谢谢。接口