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

时间:2015-10-15 15:12:27

标签: laravel middleware

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

在每次调用服务时,我都会期待一些参数,请求将被路由并传递给Controller。

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

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

1 个答案:

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

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