php - (如何)过滤器/参数可以与 Apigility 中的数据库连接服务一起使用吗?

标签 php rest zend-framework2 filtering laminas-api-tools

作为敏捷 documentation ( REST Service Tutorial -> Create a REST Service -> [infobox] Code-Connected vs DB-Connected services ) 说,数据库连接服务的内置功能“更像是一种快速应用程序开发 (RAD) 或原型(prototype)制作工具。”

好吧,现在我正在开发一个非常小的应用程序,我想,这个原型(prototype)设计功能可能就足够了。但即使是这个小应用程序也需要一个简单的过滤/请求参数化,例如: name = 'foo' 的项目, 项目 id < x and id > y , 这样的东西。

数据库连接的服务是否提供过滤?如果是,如何处理?

最佳答案

为此,您将使用 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 Controller 的请求将包含一个“名称”参数,该参数是一个字符串,并且它会另外为您修剪空格。如果您的请求具有查询参数 ?name=foo,您的 Controller 将获得 foo 作为名称参数。或者,如果您的请求不包含名称参数,您将收到一个 ApiProblem 响应,指示该请求未通过验证。

关于php - (如何)过滤器/参数可以与 Apigility 中的数据库连接服务一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27695223/

相关文章:

java - (架构)为 angular2 应用程序抓取数据。直接检查MongoDB还是我的Java REST?

zend-framework2 - zf2 中的 Lucene 搜索

zend-framework2 - 无法在 ZF2 中使用 Zend_Debug::dump ..我该怎么办?

javascript - Laravel 5.2 中无法读取 Jquery 代码中的 json 数据

php - 为什么 PHP-FPM 需要 5 分钟才能在我的服务器上重新启动?

php - CakePHP:检查是否设置了 SPECIFIC flash 消息

PHP ZF2 单元测试调度方法非常慢

php - 在 UTF-8 编码的字符串上使用 str_split

java - 在 RESTful POST 中使用多种方法发送信息是否是一种反模式

php - 使用 laravel 4.2 进行静态文件上传,文件太大时无法正常工作