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();
}
}
```
以上就是一個完整的接口示意代碼。