2015-11-06 96 views
0

在我工作的公司中,我們運行比較網站。我們的「產品」是我們從內部和外部來源比較的服務。集成外部產品類別APIS

我遇到的問題是我們有一個後端CMS風格管理系統,管理員和產品管理員可以在其中添加,刪除和修改產品。

當新的第三方公司出現並希望成爲我們服務的一部分時,我們基本上廢棄了他們所有產品的api並將它們保存在我們的數據庫中,只將定價和服務可用性委託給他們的api以獲得實時數據。

這樣做的好處(以及我們這樣做的唯一原因)是讓我們的產品管理團隊明確控制產品的佣金設置和可用性(IE:我們可以關閉它並阻止其顯示通過我們的api和webservices/sites)。

對此的一個明顯的認識是,如果api上的新產品變得可用,或者即使我們期望的產品發生變化,我們也有更多的失敗點覆蓋,但是,我遇到的主要問題(以及原因後)是,我們有一些新的集成與船上的許多產品,並將其輸入到我們的系統都是不可行的。

我的問題是,其他人如何處理這種產品目錄集成方案?

感謝, 摹

+0

你能更具體嗎?爲什麼它不可行?您的應用程序將從N個客戶端索引數據並顯示它們。究竟是什麼問題? – piotrek

+0

問題是他們的數據不符合我們的要求,他們的搜索/購買流程通常與我們已經建立的不同。目前,整合這些外部目錄的唯一方法是從字面上爲其產品/服務的各種可能的組合進行刮取,並將其轉儲到我們的數據庫中。這很麻煩,因爲他們的數據並不總是很容易映射。我想知道是否有模式或架構風格允許我實時使用他們的apis,並仍然保持對可用內容的控制? –

回答

0

如果我理解正確的話,你有2個不同的選項加上幾個雜種。

基於api的解決方案:您認爲所有您的合作伙伴將擁有大致相似的api(產品,數量,功能,價格等)。那麼對於每個合作伙伴,您都需要一個轉換器/適配器/反腐敗層來將其對象導入到您的模型中。有時你的伴侶可能會被要求參加一些工作。這可能是最簡單但也是危險的方式,因爲您可能會遇到完全不同且不可轉換模型的合作伙伴。例如一些拍賣入口沒有「物品」的概念(只有拍賣/描述)。可能沒有任何東西像'數量',但只有'合作伙伴的商店'的可用性。價格也可能不是固定的,而是取決於當前的拍賣狀態或人氣(飛機票)。所以當你遇到這樣的模型時,可能無法將其插入到你的系統中。

類似爬行器的解決方案:您幾乎完全忽略了partner的api。相反,您只需放棄他們的網站併爲您的客戶提供全文搜索。這樣,你沒有任何兼容性問題,但你也沒有結構化的數據(價格)

雜交:你可以做爬行的方式和使用任何現有的API來獲取所需的任何結構化信息(價格等)。您可以使用機器學習方法從報廢的數據中檢索所需的信息,而不是使用api。