Skip to content
This repository has been archived by the owner on Sep 15, 2020. It is now read-only.

ZF3 plugin to allow config-based query param validation in zf-rest applications

License

Notifications You must be signed in to change notification settings

eth8505/zf-rest-queryparam-validation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

!! THIS REPOSITORY IS NO LONGER MAINTAINED, PLEASE USE eth8505/laminas-api-tools-rest-queryparam-validation INSTEAD !!

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.

How to install

Install eth8505/zf-rest-queryparam-validation package via composer.

$ composer require eth8505/zf-rest-queryparam-validation

Load the module in your application.config.php file like so:

<?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.

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.

About

ZF3 plugin to allow config-based query param validation in zf-rest applications

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages