2015-07-09 21 views
0

我被問及一個面試問題(關於Ruby on Rails Web開發人員職位),關於設計一個檢測第三方API的後端的問題「啓動並運行」。我實際上很難理解這個問題是指什麼(面試官急於離開,可以理解),那麼你們會知道我該如何研究這個領域並進一步瞭解它?檢測API是「up」還是「down」(Ruby on Rails)

+1

你可能只是做一個['HEAD'(https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods)的請求,並檢查狀態返回是200 – PhilVarg

+1

他們可能指到「面向服務的體系結構」(SOA)。 –

+0

我記得有一個數據庫表(URL字符串作爲其中一列)以及Rails中的一些類。對不起,這不是特定的,我希望我可以採取他的設計解決方案的電話快照!我會研究你的建議。 – fibono

回答

3

看看"circuit breaker"模式。

其基本思想是您嘗試進行第三方API調用,並且有時該API調用失敗並出現意外錯誤。如果這些錯誤頻繁發生,那麼你可以推斷API是「down」。

當API關閉時,您不會使用它。相反,您可以優雅地解決缺少該API的問題,也許可以排隊或向用戶顯示一條消息,比如「我們應用的這部分內容目前無法使用」。重要的一點是,您不會因爲一個API關閉而導致整個應用程序崩潰。

從那時起,您認爲API會一直持續下去,直到經過一段時間,此時您又開始嘗試再次使用它。如果API調用成功而沒有錯誤,那麼您可以推斷API現在是「up」。

形式化這種模式的一個有趣的Ruby寶石被稱爲「stoplight」。

https://github.com/orgsync/stoplight