2017-08-07 58 views
0

我正在使用構建Web應用程序的OOP MVC模式。對於我目前的項目,我必須將來自外部API的數據緊密地整合到我的後端(節點)中。這是我第一次這樣做。Web服務器OOP結構 - 外部API集成?

我的應用程序發送,接收和輪詢來自此API服務的數據。

目前我有:

  • 封裝API調用的對象。
  • 一個輪詢API並更新我的應用程序數據庫的對象。
  • 想要與我的模型和API數據交談的mvc控制器。

某些用戶操作包括對此API的調用。目前我的控制器正在直接調用API處理程序,一切都感覺有點混亂和相互依賴。我想以一種最小化數據同步問題的方式來構造它。是否有任何標準化或良好模式將這種外部API集成添加到ruby-on-rails風格的MVC模式中?

回答

1

雖然我只有輕微的節點經驗,但我會將其作爲一種通用的方式處理。

我必須將來自外部API的數據緊密集成到我的後端 (節點)。

我不知道具體情況,但這通常是一個壞主意。

你的應用程序應該依賴於它自己的數據模型,控制器和視圖。如果您將應用程序與外部模型深入集成,那麼您將成爲該外部API的人質,從而失去對應用程序的控制權。

爲了最大限度地去耦,我會做這樣的事情:

|Your App| <-> |Proxy App| <-> |External API| 

|你的應用軟件|

包含模型視圖和控制器,常規的東西。 如果您需要外部API,您應該詢問| Proxy App |發送,接收和共享數據。 |你的應用|不應該改變,除非有真正的共鳴。

|代理應用|

它會向發出請求|外部API |並從中收回數據。 如果|外部API |更改,僅限此|代理應用程序|將會改變。

因此,考慮到這一點,你應該有:

|你的應用軟件|

  • 希望與我的模型交談的mvc控制器。
  • 控制器會在需要外部API數據時向代理應用程序發出請求。

|代理應用|

  • 封裝了API調用。
  • 投票API和更新我的應用程序的數據庫。

某些用戶操作包括對此API的調用。

在這種情況下|您的應用|將向發出請求|代理應用|以及誰將處理該請求並處理響應。

希望這給你你需要的洞察力。