为此,您将使用 zf-content-validation 包(请参阅https://apigility.org/documentation/modules/zf-content-validation)。
使用内容验证模块,您可以在模块配置部分定义输入过滤器,并指定使用哪个输入过滤器来验证您的服务请求。
例如(来自文档):
'zf-content-validation' => array(
'Application\Controller\HelloWorld' => array(
'input_filter' => 'Application\Controller\HelloWorld\Validator',
'POST' => 'Application\Controller\HelloWorld\CreationValidator',
),
),
'input_filter_specs' => array(
'Application\Controller\HelloWorldGet' => array(
0 => array(
'name' => 'name',
'required' => true,
'filters' => array(
0 => array(
'name' => 'Zend\Filter\StringTrim',
'options' => array(),
),
),
'validators' => array(),
'description' => 'Hello to name',
'allow_empty' => false,
'continue_if_empty' => false,
),
),
),
此配置将验证对您的 HelloWorld 控制器的请求是否包含一个字符串形式的“名称”参数,并且还会为您修剪空格。如果您的请求具有查询参数,?name=foo
您的控制器将获得foo
名称参数。或者,如果您的请求不包含名称参数,您将收到一个 ApiProblem 响应,指示该请求未通过验证。