使用Laravel 5.3正确地向第三方API发出请求

时间:2016-09-22 18:36:40

标签: php rest laravel oop

这里有几个问题是类似的,但并不能真正提供我需要的东西。

我在Laravel 5.3中创建了一个简单的宠物项目,它使用https://xboxapi.com/来引入Xbox游戏的JSON。起初我打算创建一个游戏模型,但我明白,因为我正在使用第三方,我真的不会从我自己的数据库中提取任何数据而且真的没有必要使用Eloquent ORM此时。

" Laravel方式"去做这个?我可以使用Guzzle来访问API,并创建按标题获取游戏的方法,通过发布者获取游戏等等。我想我要问的是这是在我的应用程序的文件结构中的哪个位置?我知道可能没有正确或错误的答案。真的只是在寻找改善我的OOP概念的一些见解。

修改

我应该把它放到GamesController中吗?我不想让Guzzle进入我的控制器,对吗?

或者我应该创建一个扩展Eloquent模型的Game类,然后覆盖像:: all()和:: find()这样的方法来命中API而不是应用程序数据库?

提前致谢!

1 个答案:

答案 0 :(得分: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

相关问题