前言
我应该是少数在文章中直接展示接口文档的人。本篇我思考了很久到底要不要解析下商品接口开发的注意点。
客户端开发与服务端开发即是天敌也是兄弟。希望本篇文章让你们减少争执,把“爱”给对方。
接口设计
简述
电商系统设计之中,比较复杂的接口就论商品详情的接口了,响应参数特别多,特别杂。在开发获取商品详情接口时要遵循以下几个原则
- 返回的JSON嵌套数量要少
 - 方便去查询到指定的SKU
 - 其他接口相关规范
 
查询SKU
关于查询SKU,我让我的小伙伴是这样做的,首先拿出规格和属性
1  | json复制代码"选择颜色": [  | 
没错,你没有看错,实际就是将规格作为key,属性作为value。将value[id]取出,进行拼接即可查询到对应的SKU了。
1  | css复制代码响应参数[规格名称][属性编码] = 拼接SKU串的必需品  | 
规格相当于一个分组,属性其实也是拼接SKU的重要组成部分,上述数据为例
1  | ini复制代码75_77_82 = 银色,公开版,64G  | 
接口文档
请求地址
/v1/product/{productId}
请求类型
GET
请求参数
| 参数 | 类型 | 默认值 | 说明 | 
|---|---|---|---|
| productId | int | 0 | 商品编码 | 
响应示例
1  | css复制代码{  | 
响应参数说明
核心参数
| 参数 | 类型 | 默认值 | 说明 | 
|---|---|---|---|
| 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参数
| 参数 | 类型 | 默认值 | 说明 | 
|---|---|---|---|
| sku[] | array[] | [] | 商品sku | 
| [(option_id)] [] | array[] | 商品SKU查询办法为 attribute[(attr_name)][‘id’] 拼接 | |
| id | int | 0 | sku编码 | 
| name | string | - | sku 名称 | 
| price | double | 00.00 | 商品价格 | 
| stock | int | 0 | 商品库存 | 
致谢
字不在多,讲清楚就行,感谢你看到这里,希望本篇文章可以帮助到你,有疑问可以在评论区讨论,谢谢。
交流
生命不息,编码不止。
微信搜索 【一文秒懂】 传播技术正能量,持续学习新知识。
本文转载自: 掘金