2016-08-01 104 views
0

鉴于我张贴到端点像这样:Apigility输入过滤注入

POST http://foo.com/user/:user_id/articles

{ 
    "content": "some text" 
} 

当我配置我奋力的配置中的验证工具如何注入:从USER_ID与来自身体的“内容”一起路由。所以我的验证器被卡住,试图验证如果“内容”没有:user_id是好的。

什么是适当的Apigility方法来将ID(甚至理想的对象)从路由参数连同正常的body数据有效载荷一起插入Validator?

非常感谢

+0

你可以创建你自己的过滤器,并做任何你想要的处理。 – yivi

回答

0

据我所知,apigility无法验证路由参数。 我个人以de资源或控制器验证它们。 这样我可以做一些更复杂的验证,就像这个ID存在?

如果你想要一个对象作为路由参数,你van试着序列化对象并把它放入你的参数中。 但我会反对这个建议。你甚至会信任外部的一方为你提供整个对象吗? 如果您需要某些用户信息,您可以查看JWT或类似技术。 JWT是一个授权令牌,其中也包含任何数据(基于json)。

现在,任何身体参数都可以验证。 在应用程序ui中,您可以转到字段,然后添加要在其中验证的字段(或者为简单起见应该是所有字段)。 然后你可以在这里分配过滤器和验证器。即使是在zf2应用程序中配置的自定义配置。

+0

不幸的是,如上所述,apigility不会将过滤器应用于查询字符串参数,您需要手动处理这些参数。 – Andrew

+0

是的,这是正确和不幸的。 它可能会延长很难过滤这些。 – Erik