!! THIS REPOSITORY IS NO LONGER MAINTAINED, PLEASE USE eth8505/laminas-api-tools-rest-queryparam-validation INSTEAD !!, (*1)
Eth8505\ZfRestQueryParamValidation - ZF3 Module for zf-rest QueryString validation
The Eth8505\ZfRestQueryParamValidation module allows you to validate query parameters with
zfcampus/zf-rest just like you would with
zfcampus/zf-content-validation for entities., (*2)
How to install
Install eth8505/zf-rest-queryparam-validation package via composer., (*3)
$ composer require eth8505/zf-rest-queryparam-validation
Load the module in your application.config.php file like so:, (*4)
<?php
return [
'modules' => [
'Eth8585\\ZfRestQueryParamValidation',
// ...
],
];
How to use
Just like with zfcampus/zf-content-validation, specify a
query_filter key in the zf-content-validation section of your module.config.php and register a
input_filter_spec. The apigility docs
dig into this a little deeper., (*5)
Generic query param validation for a rest controller
<?php
return [
// ...
'zf-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',
],
],
],
];
Action-specific query-validation
<?php
return [
// ...
'zf-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',
],
]
],
];
Thanks
Thanks to jdelisle and his
Query String validation gist
which this module is based on., (*6)