2009-09-15 40 views
2

對於以下情況,最佳做法是什麼?我有一家電子商務商店,可以降低分銷商的庫存水平。用戶每次加載產品詳細信息頁面時,都應該使用第三方API獲取最新的數據?或者,如果網站使用第三方API,然後將這些數據存儲在自己的系統中一段時間​​並定期更新?電子商務第三方API數據最佳實踐

對我來說,似乎很明顯,它應該每次在產品詳細信息頁面加載時更新,但高流量的電子商務商店呢?這種情況下完全不同的解決方案?

回答

1

在這種情況下,我肯定會將分銷商網站的結果緩存一段時間,而不是每次收到請求時都打印它們。但是,我不會簡單地爲所有緩存條目使用全部的5分鐘或30分鐘超時。相反,我會使用一些啓發式。如果可能的話,例如,如果你的應用程序是用Python這樣的語言編寫的,你可以將一個簡單的腳本附加到實現超時的每個產品上。

這樣,如果它是不經常請求的項目或庫存量很大的項目,則可以緩存更長的時間。

if product.popularityrating > 8 or product.lastqtyinstock < 20: 
    cache.expire(productnum) 
distributor.checkstock(productnum) 

這給你靈活性,你可以調用,如果你需要它。最初,您可以設置所有的規則是這樣的:

cache.expireover("3m",productnum) 
distributor.checkstock(productnum) 

事實上,腳本可能不會包括checkstock函數調用,因爲這將是主要的應用程序,但這裏的上下文包括在內。如果python看起來太重以至於只包含這麼小的靈活性,那麼看看專門爲這類工作設計的TCL。兩者都可以輕鬆嵌入到C,C++,C#和Java應用程序中。

0

其實還有另一種解決方法。您的分銷商將產品目錄保存在他們的服務器上,並通過Open Catalog Interface進行訪問。當用戶想要下訂單時,他會被重定向到分銷商的產品目錄,然後選擇商品,然後將選擇轉移回您的商店。

它被廣泛應用於SRM(供應商關係管理)分公司。

+0

不幸的是,分銷商目前還沒有提供OCI(縮寫?)。我們可以訪問的只有幾個SOAP方法調用。它以XML格式傳回數據。非常有趣,但感謝指出。 – 2009-09-15 07:49:28

0

這取決於很多因素:到您網站的流量,庫存水平變化的頻率,替代過時數據的業務影響,供應商允許您調用其API的頻率,API的可用性以及SLA的可用性性能等等。

一旦你有了這些答案,這裏當然有很多可能性。例如,對於流量較低的站點來說,正確清查清單非常重要,您可能需要在每次調用時調用第三方API,但如果API未響應,則還原爲其他行爲(例如使用緩存數據)在一定的超時時間內。

有時,精心設計的API將包含有關數據有效期的提示。例如,某些REST-over-HTTP API支持可用於指定有效期的各種HTTP Cache控制標頭,或者僅在自上次請求後發生更改時才檢索數據。