请求验证器:验证IRI

时间:2018-05-08 08:53:24

标签: symfony4 api-platform.com iri

我目前正在使用api-plateform,这是迄今为止一个很棒的工具。 在我的数据存储到我的数据库之前,我想添加一些验证器。

Api-platform适用于IRI而不是普通ID(即使您可以更改此行为)。我想知道什么是验证IRI的最佳方法。

我们假设我收到了例如" api / users / 1"。我想确保这个IRI实际上是有效的(即表中存在id" user")。

我可以创建一个自定义验证器规则,该规则可以调用该IRI并查看它是否返回有效结果,或者甚至拆分字符串以获取id和表,然后进行sql查询以检查它是否为#s不是空的。

但我认为这两种解决方案都不是很理想。你有什么线索吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

API平台将在反序列化过程中自动将IRI转换为引用实体的实例。

如果提供了无效的IRI(格式错误或未找到),API平台将自动抛出错误并返回400(错误请求)HTTP状态。

如果要添加更高级的验证约束,可以在根实体和相关实体(用户)上使用Symfony验证程序。例如,请参阅@Valid constraint