Apigility InputFilter注入

Apigility InputFilter injection

鉴于我是这样发布到端点的:

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

{
  "content": "some text"
}

当我在配置中配置验证器时,我正在努力寻找如何从路由中注入 :user_id 以及从正文中注入 "content"。所以我的验证器被困在尝试验证 "content" 是否正常而没有 :user_id.

将路由参数中的 ID(或什至理想情况下的对象)与正常主体 $data 有效负载一起注入验证器的正确 Apigility 方法是什么?

非常感谢

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

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

现在,可以验证任何 body 参数。 在 apigility ui 中,您可以转到字段,并在其中添加要验证的字段(或者为简单起见,应该全部添加)。 然后您可以在此处分配过滤器和验证器。甚至是您在 zf2 应用程序中配置的自定义项。