eth8505 / laminas-api-tools-rest-queryparam-validation
laminas-api-tools/api-tools-rest 的查询字符串验证
2.1.0
2024-02-16 13:56 UTC
Requires
- php: ^7.4 || ^8.0
- laminas-api-tools/api-tools-api-problem: ^1.3
- laminas-api-tools/api-tools-content-validation: ^1.8
- laminas-api-tools/api-tools-rest: ^1.5
- laminas/laminas-eventmanager: ^3.3
- laminas/laminas-inputfilter: ^2.10
- laminas/laminas-servicemanager: ^3.4
Requires (Dev)
- phpunit/phpunit: ^9.5
README
LaminasRestQueryParamValidation 模块允许您使用 laminas-api-tools/api-tools-rest 验证查询参数,就像使用 laminas-api-tools/api-tools-content-validation 验证实体一样。
如何安装
通过 composer 安装 eth8505/laminas-api-tools-rest-queryparam-validation
包。
$ composer require eth8505/laminas-api-tools-rest-queryparam-validation
在您的 application.config.php
文件中加载模块,如下所示
<?php return [ 'modules' => [ 'LaminasRestQueryParamValidation', // ... ], ];
如何使用
与 laminas-api-tools/api-tools-content-validation 类似,在 module.config.php
文件的 api-tools-content-validation
部分指定一个 query_filter
键并注册一个 input_filter_spec
。有关详细信息,请参阅 Laminas API Tools 文档。
REST 控制器的通用查询参数验证
<?php return [ // ... 'api-tools-content-validation' => [ 'MyModule\\V1\\Rest\\MyModule\\Controller' => [ 'query_filter' => 'MyModule\\V1\\Rest\\MyModule\\QueryValidator', ], ], // ... 'input_filter_specs' => [ 'MyModule\\V1\\Rest\\MyModule\\QueryValidator' => [ 0 => [ 'required' => false, 'validators' => [ // ... ], 'filters' => [], 'name' => 'my_param', 'field_type' => 'integer', ], ], ], ];
特定动作的查询验证
<?php return [ // ... 'api-tools-content-validation' => [ 'MyModule\\V1\\Rest\\MyModule\\Controller' => [ 'query_filter' => [ 'default' => 'MyModule\\V1\\Rest\\MyModule\\QueryValidator', 'fetchAll' => 'MyModule\\V1\\Rest\\MyModule\\FetchAllQueryValidator' ], ], ], // ... 'input_filter_specs' => [ 'MyModule\\V1\\Rest\\MyModule\\QueryValidator' => [ 0 => [ 'required' => false, 'validators' => [ // ... ], 'filters' => [], 'name' => 'my_param', 'field_type' => 'integer', ], ], 'MyModule\\V1\\Rest\\MyModule\\FetchAllQueryValidator' => [ 0 => [ 'required' => false, 'validators' => [ // ... ], 'filters' => [], 'name' => 'my_fetch_all_param', 'field_type' => 'integer', ], ] ], ];
感谢
感谢 jdelisle 及其 Query String validation gist,本模块基于此。