eth8505/laminas-api-tools-rest-queryparam-validation

laminas-api-tools/api-tools-rest 的查询字符串验证

2.1.0 2024-02-16 13:56 UTC

This package is auto-updated.

Last update: 2024-09-16 15:34:22 UTC


README

LaminasRestQueryParamValidation 模块允许您使用 laminas-api-tools/api-tools-rest 验证查询参数,就像使用 laminas-api-tools/api-tools-content-validation 验证实体一样。

CI Status Packagist Packagist Version PHP from Packagist

如何安装

通过 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,本模块基于此。