laravel-api-helper在对参数进行验证,和数据绑定都需要继承`Gaazok\Tools\ApiHelper\Request\MasterRequest`抽象类,`MasterRequest` 继承自`FromRequest`。
> 当`MasterRequest`子类存在`registerCommonRequestInfo`方法,子类被实例化时会自动调用`registerCommonRequestInfo`来用于注册一些公共的参数验证规则、参数名以及数据绑定关系。
使用示例:
验证器文件
`/app/Http/Controllers/Api/Request/Demo.php`
```
<?php
declare(strict_types=1);
namemespace App\Http\Controllers\Api\Request;
use Gaazok\Tools\ApiHelper\Request\MasterRequest;
use Gaazok\Tools\ApiHelper\Request\Rules;
use Gaazok\Tools\ApiHelper\RequestParameters;
class Demo extends MasterRequest
{
// 注册公共参数验证规则和公共参数
publif function registerCommonRequestInfo()
{
Rules::add('id', ['bail', 'required', 'integer']);
Rules::add('name', ['sometimes', 'required', 'string', 'size:32']);
Parameters::add('id');
}
// 注册runTest方法需要验证的参数
public function runTestParameters()
{
return ['name'];
}
}
```
控制器文件
`/app/Http/Controllers/Api/V1/Demo.php`
```
<?php
declare(strict_types=1);
namemespace App\Http\Controllers\Api\V1;
use App\Http\Controllers\Api\Request\DemoReq;
use Gaazok\Tools\ApiHelper\Controllers\ApiController;
class Demo extends ApiController
{
// 请求白名单,将对外开放的接口方法名写到该方法内
pubilc function writeListMethod(): array
{
return ['runTest'];
}
public function runTest(DemoReq $req)
{
retunrn $this->success();
}
}
```
以上就是一个完整的接口示意代码。