鉴于我是这样发布到端点的:
POST http://foo.com/user/:user_id/articles
{
"content": "some text"
}
当我在配置中配置Validator时,我正在努力寻找如何从路由中注入:user_id以及"内容"从身体。所以我的验证员试图验证是否"内容"如果没有:user_id。
将路径参数中的ID(甚至是理想的对象)与正常的主体$ data有效负载一起注入验证器的适当的Apigility方法是什么?
非常感谢
答案 0 :(得分:1)
据我所知,apigility无法验证路由参数。 我个人在资源或控制器中验证它们。 那样我可以做一些更复杂的验证,比如这个id存在吗?
如果您想要一个对象作为路由参数,您可以尝试序列化该对象并将其放入您的参数中。 但我会建议不要这样做。你甚至会相信外部派对会为你提供整个对象吗? 如果您需要一些用户信息,可以查看JWT或类似技术。 JWT是一个授权令牌,它还包含任何数据(基于json)。
现在,任何身体障碍都可以被验证。 在apigility ui中,您可以转到字段,并添加要在其中验证的字段(或者为了简单起见,它应该是所有字段)。 然后,您可以在此处指定过滤器和验证器。甚至是您在zf2应用程序中配置的自定义。