请求验证器:验证 IRI

Request validator : validate an IRI

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

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

比方说我收到了 "api/users/1"。我想确保这个 IRI 实际上是有效的(即 id 存在于 table "user")。

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

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

非常感谢!

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

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

如果您想添加更高级的验证约束,您可以在根实体和相关实体(用户)上使用 Symfony 验证器。例如参见 [​​=11=].