2016-09-22 47 views
0

在這裏有幾個問題是類似,但不是那些確實提供我所需要的。正確地向第三方API請求Laravel 5.3

我在Laravel 5.3中創建了一個簡單的寵物項目,它使用https://xboxapi.com/來拉入Xbox遊戲的JSON。起初,我打算創建一個遊戲模型,但我明白,因爲我正在使用第三方,所以我真的不會從我自己的數據庫中提取任何數據,現在真的不需要使用雄辯ORM。

什麼是「Laravel方式」來做到這一點?我可以使用Guzzle命中API,並創建方法按標題獲取遊戲,由發佈商獲取遊戲等。我想我所問的是在我的應用程序的文件結構中,這是什麼位置?我明白可能沒有正確或錯誤的答案。真的只是尋找一些改進我的OOP概念的見解。

編輯

我是不是應該把這個變成一個GamesController?我不想在我的控制器中出現Guzzle,對吧?或者我應該實際創建一個擴展Eloquent模型的Game類,然後覆蓋諸如:: all()和:: find()之類的方法來命中API而不是應用程序數據庫?

提前致謝!

回答

2

是的。使用Guzzle。 PSR-7規範已經實現了3 RFC的規定如何處理HTTP請求對象。

Guzzle確實有PSR-7的支持,你可以看到git repository here

對於基於API的CRUD請求,請創建一個新的Controller名稱空間並在其中移動您的API邏輯。消耗你自己的API的內部,如果你需要通過這些外部終點:

artisan make:controller Api\\UserController 

現在更新RouteServiceProvider,並添加一個新的聲明:

private $api_namespace = 'App\Http\Controllers\Api`. 

現在更新mapApiRoutes()和改變你的命名空間:

'namespace' => $this->api_namespace 

現在所有的API請求都應該路由到Api\Controllers

+0

謝謝。我將澄清我的問題,但是因爲您剛剛回答:我只是在GamesController中提出這些請求嗎?我應該創建一個特殊的類來擊中API嗎? – plushyObject

+0

@plushyObject我找到了你。檢查編輯。 – Ohgodwhy

+0

不幸的是我沒有按照你的回答。這是我的想法: 1)創建帶有典型CRUD方法的GamesController。 2)在GamesController中,顯示($ game_title),然後使用Guzzle在查詢 – plushyObject