电商商务/外贸系统设计之商品API接口接入

2023-12-15 12:21:40

前言

我应该是少数在文章中直接展示接口文档的人。本篇我思考了很久到底要不要解析下商品接口开发的注意点。

客户端开发与服务端开发即是天敌也是兄弟。希望本篇文章让你们减少争执,把“爱”给对方。

接口设计

简述

电商系统设计之中,比较复杂的接口就论电商商品详情的接口了,响应参数特别多,特别杂。在开发获取商品详情接口时要遵循以下几个原则

  • 返回的JSON嵌套数量要少

  • 方便去查询到指定的SKU

  • 其他接口相关规范

查询SKU

关于查询SKU,我让我的小伙伴是这样做的,首先拿出规格和属性

 
  1. "选择颜色": [

  2. ? {

  3. ? ? ? ? ?"name": "银色",

  4. ? ? ? ? ?"id": 75

  5. ? }

  6. ],

  7. "选择版本": [

  8. ? {

  9. ? ? ? ? ?"name": "公开版",

  10. ? ? ? ? ?"id": 77

  11. ? },

  12. ? {

  13. ? ? ? ? ?"name": "【原厂延保版】",

  14. ? ? ? ? ?"id": 78

  15. ? } ?

  16. ],

  17. "内存": [

  18. ? {

  19. ? ? ? ? ?"name": "64G",

  20. ? ? ? ? ?"id": 82

  21. ? },

  22. ? {

  23. ? ? ? ? ?"name": "256G",

  24. ? ? ? ? ?"id": 83

  25. ? }

  26. ],

没错,你没有看错,实际就是将规格作为key,属性作为value。将value[id]取出,进行拼接即可查询到对应的SKU了。

 
  1. 响应参数[规格名称][属性编码] = 拼接SKU串的必需品

规格相当于一个分组,属性其实也是拼接SKU的重要组成部分,上述数据为例

 
  1. 75_77_82 = 银色,公开版,64G

接口文档

请求地址

/v1/product/{productId}

请求类型

GET

请求参数

参数类型默认值说明
productIdint0商品编码

响应示例

 
  1. {

  2. ?"code": 200,

  3. ?"message": "获取成功",

  4. ?"data": {

  5. ? ?"id": 131,

  6. ? ?"name": "Apple iPhone X (A1865) 64GB 深空灰色 移动联通电信4G手机",

  7. ? ?"price": "8388.00",

  8. ? ?"market_price": "8388.00",

  9. ? ?"sketch": "IPhone大法好,打九折,打九折,快剁手",

  10. ? ?"intro": "这是商品描述",

  11. ? ?"keywords":['苹果','iphone'],

  12. ? ?"attribute": {

  13. ? ? ?"选择颜色": [

  14. ? ? ? ?{

  15. ? ? ? ? ?"name": "银色",

  16. ? ? ? ? ?"id": 75

  17. ? ? ? ?},

  18. ? ? ? ?{

  19. ? ? ? ? ?"name": "深空灰色",

  20. ? ? ? ? ?"id": 76

  21. ? ? ? ?}

  22. ? ? ?],

  23. ? ? ?"选择版本": [

  24. ? ? ? ?{

  25. ? ? ? ? ?"name": "公开版",

  26. ? ? ? ? ?"id": 77

  27. ? ? ? ?},

  28. ? ? ? ?{

  29. ? ? ? ? ?"name": "【原厂延保版】",

  30. ? ? ? ? ?"id": 78

  31. ? ? ? ?},

  32. ? ? ? ?{

  33. ? ? ? ? ?"name": "双网通版",

  34. ? ? ? ? ?"id": 79

  35. ? ? ? ?},

  36. ? ? ? ?{

  37. ? ? ? ? ?"name": "无线充套装",

  38. ? ? ? ? ?"id": 80

  39. ? ? ? ?},

  40. ? ? ? ?{

  41. ? ? ? ? ?"name": "Airpods套装",

  42. ? ? ? ? ?"id": 81

  43. ? ? ? ?}

  44. ? ? ?],

  45. ? ? ?"内存": [

  46. ? ? ? ?{

  47. ? ? ? ? ?"name": "64G",

  48. ? ? ? ? ?"id": 82

  49. ? ? ? ?},

  50. ? ? ? ?{

  51. ? ? ? ? ?"name": "256G",

  52. ? ? ? ? ?"id": 83

  53. ? ? ? ?}

  54. ? ? ?],

  55. ? ? ?"购买方式": [

  56. ? ? ? ?{

  57. ? ? ? ? ?"name": "官方标配",

  58. ? ? ? ? ?"id": 84

  59. ? ? ? ?},

  60. ? ? ? ?{

  61. ? ? ? ? ?"name": "移动优惠购",

  62. ? ? ? ? ?"id": 85

  63. ? ? ? ?},

  64. ? ? ? ?{

  65. ? ? ? ? ?"name": "电信优惠购",

  66. ? ? ? ? ?"id": 86

  67. ? ? ? ?},

  68. ? ? ? ?{

  69. ? ? ? ? ?"name": "联通优惠购",

  70. ? ? ? ? ?"id": 87

  71. ? ? ? ?}

  72. ? ? ?]

  73. ? ?},

  74. ? ?"album": [

  75. ? ? ?{

  76. ? ? ? ?"id": 2,

  77. ? ? ? ?"name": "这是第一张图片",

  78. ? ? ? ?"url": "http://xxx.com/59ec33eaN6ddb0c54.jpg"

  79. ? ? ?},

  80. ? ? ?{

  81. ? ? ? ?"id": 3,

  82. ? ? ? ?"name": "这是第二张图片",

  83. ? ? ? ?"url": "http://xxx.com/59ec3400Nce4cc116.jpg"

  84. ? ? ?}

  85. ? ?],

  86. ? ?"radio": {

  87. ? ? ?"id": 1,

  88. ? ? ?"name": "这是一个视频",

  89. ? ? ?"url": "http://xxx.com/1.mp4"

  90. ? ?},

  91. ? ?"sku": {

  92. ? ? ?"75_77_82_84": {

  93. ? ? ? ?"id": 1018,

  94. ? ? ? ?"name": "选择颜色:银色;选择版本:公开版;内存:64G;购买方式:官方标配;",

  95. ? ? ? ?"price": "8388.00",

  96. ? ? ? ?"stock": 83888388

  97. ? ? ?},

  98. ? ? ?"75_77_82_85": {

  99. ? ? ? ?"id": 1019,

  100. ? ? ? ?"name": "选择颜色:银色;选择版本:公开版;内存:64G;购买方式:移动优惠购;",

  101. ? ? ? ?"price": "8388.00",

  102. ? ? ? ?"stock": 83888388

  103. ? ? ?},

  104. ? ? ?"75_77_82_86": {

  105. ? ? ? ?"id": 1020,

  106. ? ? ? ?"name": "选择颜色:银色;选择版本:公开版;内存:64G;购买方式:电信优惠购;",

  107. ? ? ? ?"price": "8388.00",

  108. ? ? ? ?"stock": 83888388

  109. ? ? ?},

  110. ? ? ?"75_77_82_87": {

  111. ? ? ? ?"id": 1021,

  112. ? ? ? ?"name": "选择颜色:银色;选择版本:公开版;内存:64G;购买方式:联通优惠购;",

  113. ? ? ? ?"price": "8388.00",

  114. ? ? ? ?"stock": 83888388

  115. ? ? ?},

  116. ? ? ?"75_77_83_84": {

  117. ? ? ? ?"id": 1022,

  118. ? ? ? ?"name": "选择颜色:银色;选择版本:公开版;内存:256G;购买方式:官方标配;",

  119. ? ? ? ?"price": "8388.00",

  120. ? ? ? ?"stock": 83888388

  121. ? ? ?},

  122. ? ? ?"75_77_83_85": {

  123. ? ? ? ?"id": 1023,

  124. ? ? ? ?"name": "选择颜色:银色;选择版本:公开版;内存:256G;购买方式:移动优惠购;",

  125. ? ? ? ?"price": "8388.00",

  126. ? ? ? ?"stock": 83888388

  127. ? ? ?}

  128. ? ?}

  129. ?}

  130. }

响应参数说明

核心参数

参数类型默认值说明
idint0商品编码
namestring-商品标题
pricedouble00.00商品价格
keywordsstring-商品关键字
market_pricedouble00.00市场价格
virtualint0虚拟销量
sketchstring-商品简述
introstring-商品详情

商品图参数

参数类型默认值说明
album[]array[]商品轮播图
idint0资源编码
namestring-图片名称
urlstring-资源路径

商品视频参数

无视频则返回 []

参数类型默认值说明
radio[]array[]商品视频
idint0资源编码
namestring-视频名称
urlstring-资源路径

商品规格/属性参数

参数类型默认值说明
attributearray[][]商品属性
[(attr_name)] []array[][]属性名称
namestring-属性项名称
idint0属性项编码

商品SKU参数

参数类型默认值说明
sku[]array[][]商品sku
[(option_id)] []array[]商品SKU查询办法为 attribute[(attr_name)]['id'] 拼接
idint0sku编码
namestring-sku 名称
pricedouble00.00商品价格
stockint0商品库存

致谢

字不在多,讲清楚就行,感谢你看到这里,希望本篇文章可以帮助到你,有疑问可以在评论区讨论,谢谢。

文章来源:https://blog.csdn.net/onebound_linda/article/details/135010007
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。