2015-04-22 59 views
0

有沒有人有一個很好的清洗&在Laravel中使用API​​的大多數代碼有效的解決方案?在Laravel中使用API​​的乾淨解決方案?

感謝您的幫助

+0

我剛讀了這本書https://leanpub.com/build-apis-you-wont-hate。這是一個關於如何構建API的非常好的資源,大多數示例使用Laravel。 – user3158900

+0

對不起,您可能錯誤地閱讀了這個問題。我已經知道如何使用Laravel構建API。我正在尋找在Laravel中使用外部API的最佳和最簡潔的方式。 –

+0

哦,很抱歉,再次閱讀後,我意識到我的解釋完全與它所說的完全相反。 – user3158900

回答

1

一件事很多人似乎忘記了是個什麼模式真的是MVC。大多數情況下,它們只是數據庫的抽象層,但它們不一定是。它們也可以是與外部API交互的服務。所以說,當我在一個使用外部API的網站上構建一個功能時,我通常從爲該API創建模型開始。然後,我嘗試將方法命名爲儘可能類似於Eloquent方法,只是因爲這是我最習慣的方式,並且傾向於最有意義。

這些方法只是與API交互,甚至可以使用API​​的結果來填充集合對象。這個想法是設計你的模型的方式,你甚至不覺得你正在與第三方API交互。

在模型之上,我還將構建一個存儲庫,其中將包含應用程序與API進行交互所需的任何業務邏輯。例如,如果您需要從API中獲取特定項目,則可能需要首先檢查自己的數據庫以獲取緩存版本。如果沒有,請從API和緩存/重新緩存中獲取該項目,然後將結果返回到控制器。

然後,您會將資源庫注入控制器,並根據需要執行任何操作。

此外,它可能非常明顯,但API密鑰和API入口點在您的配置文件或.env文件中會很順利,具體取決於您使用的是哪個Laravel版本。如果第三方提供您想要使用的更新的API版本,在您需要更新模型的情況下,最好還是使用服務提供程序來管理依賴注入。在這種情況下將模型編碼到界面有可能在稍後爲您節省一些麻煩。

最後一個注意事項是,在開始之前,先檢查包裝盒。重新發明輪子沒有意義。

相關問題