簡體   English   中英

Rails第三方API調用的最佳實踐?

[英]Best practice for Rails third party API calls?

我有一個rails應用程序,可以調用第三方API進行天氣預報。

問題是API調用通常很慢,有時會失敗。 顯示天氣不是必需的,但它增加了一些額外和相關的信息。

現在我在控制器中使用Barometer gem調用Wunderground API,這意味着如果API緩慢或失敗,頁面將永遠加載。

我希望在頁面加載后從頁面調用此AJAX調用。 我不介意信息顯示但有點延遲,因為如上所述它並不是非常重要。

我只是好奇發出這樣一個電話的最佳做法? 什么是Rails方式?

建議的方法是在后台調用API(使用調度程序)並將結果保存在數據庫中。 然后在控制器中,您可以從數據庫中獲取數據,並且不會有任何延遲。

我會說你在從瀏覽器轉移到AJAX調用時非常正確 - 這樣你的頁面加載不會受到影響,並且它可能需要多長時間而不需要服務器等待它。 這是異步加載數據的典型案例(通過回調和/或jQuery的deferred方法),以便在數據加載時其他所有內容都可用,並且您的用戶不會等待他們可能不太感興趣的某些信息用。

在保持Rails方面,您的主要考慮因素是您是否可以和/或想要直接從瀏覽器撥打電話到服務,或者是否要在某種程度上通過您的應用程序代理它,這將節省潛在的交叉 - 域請求問題。 同樣,這是您的決定,並且將取決於您是否有任何需要通過請求傳輸的API密鑰等等,但如果請求可以直接從用戶運行到天氣API,那么這將允許您刪除你的中間步驟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM