我應該是少數在文章中直接展現接口文檔的人。本篇我思考了好久到底要不要解析下商品接口開發的注意點。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 | 商品庫存 |
字不在多,講清楚就行,感謝你看到這裏,但願本篇文章能夠幫助到你,有疑問能夠在評論區討論,謝謝。接口