2016-09-22 14 views
0

ここにはと同様のという質問がいくつかありますが、実際には必要なものを提供していません。Laravel 5.3で第三者APIへのリクエストを適切に作成する方法

私はXboxゲームのJSONを取り込むためにhttps://xboxapi.com/を使用するLaravel 5.3の単純なペットプロジェクトを作成しています。最初はゲームモデルを作成しようとしていましたが、サードパーティを使用しているため、自分のDBからデータを取り込むことは実際にはありません。現時点でEloquent ORMを使用する必要はありません。

これを行うにはどうすればいいですか?私はGuzzleを使ってAPIを打ち、タイトル別にゲームをしたり、パブリッシャーでゲームをやったりするメソッドを作ることができます。私はアプリのファイル構造内でどこに行くのでしょうか?私は正しいか間違った答えがないかもしれないことを理解しています。本当に私のOOPの概念を改善するためのいくつかの洞察を探しています。

編集

私はちょうどGamesControllerにこれを置くべきか?私はコントローラーにGuzzleを持っていたくないですよね?

Eloquentモデルを拡張するGameクラスを実際に作成してから、アプリケーションデータベースではなくAPIにヒットする:: all()と:: find()などのメソッドを上書きする必要がありますか?

ありがとうございます!

答えて

2

はい。グーズを使用します。 PSR-7仕様では、HTTPリクエストオブジェクトの処理方法を指示する3 RFCが実装されています。

ギグはPSR-7サポートを持っています、あなたはgit repository hereを見ることができます。

APIベースのCRUDリクエストの場合は、新しいコントローラ名前空間を作成し、そこに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を作成します。 (/ game_title) のshow()メソッドのルートから始めましょう2)GamesController内でshow($ game_title)を実行し、Guzzleを使用して$ game_titleでクエリを実行します – plushyObject

関連する問題