Laravel REST应用中,使用中间件验证输入是否正确?

In a Laravel REST application, is it correct to use middleware to verify the input?

有一个 Laravel 提供 REST 服务的应用程序

在每次调用服务时,我都希望有一些参数,请求将被路由并传递给控制器​​。

实施一些中间件来检查请求的正确性是否正确,或者在某些情况下(还不知道是哪些)最好在控制器内部实施输入验证?

考虑到 Laravel 4 已转移到中间件解决方案的过滤器,我将把输入验证逻辑放在中间件实例中。

您应该使用 FormRequest 和使用 ValidatesRequests 的控制器。

这样做时,您可以为每个单独的请求指定 validation and authorization rules

<?php

namespace App\Http\Controllers;

use App\Http\Requests\SomeFormRequest;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;

class SomeController extends BaseController
{
   use ValidatesRequests;

   /**
    * Store the incoming blog post.
    *
    * @param  SomeFormRequest  $request
    * @return Response
    */
    public function store(SomeFormRequest $request)
    {
        // The incoming request has already been validated
    }
}

在这里,您可以将验证委托给另一个 class,并始终假设如果调用控制器方法,则验证通过。