在API路由

时间:2017-09-01 10:49:00

标签: php laravel laravel-5.4

问题

似乎我的API处理控制器无法处理注入的Request对象。详情如下。

我的 api.php 路线文件中有一条路线:

Route::namespace('Mailing')->prefix('mailing/webhook')->group(function () {

    Route::post('open', 'WebhookController@getOpened');

});

WebhookController.php 中,有一个带有注入Request对象的构造函数:

use Illuminate\Http\Request;


public function __construct(Request $request) {

    // Log it in the database   
    Logger::info('constructor called...');

    // Filter the input in the injected Request
    $this->input = $this->getFilteredInput($request);
}

现在,当我将此代码部署到服务器并对我的端点进行API调用时,__construct()方法开头的日志消息甚至都没有被触发。我也没有存储在数据库中的数据(如果正确处理了webhook,就会发生这种情况)。

我测试了什么

但是,当我在 web.php 路线文件中创建虚拟路线时:

Route::post('open', 'WebhookController@getOpened');

然后创建一个表单并对POST方法进行getOpened()调用 - 所有方法都按预期工作:我注入Request并可以操作它。

我查了一下:

  • API端点正确且可用
  • 顶部没有过时的use语句 WebhookController

问题

为什么 api.php 路由失败? Laravel's dependency injection不适用于API处理控制器吗?

0 个答案:

没有答案