Запрос валидатора: подтвердить IRI

В настоящее время я работаю с api-plateform, который до сих пор был отличным инструментом. Я хотел бы добавить валидатор, прежде чем мои данные будут сохранены в моей базе данных.

Api-платформа работает с IRI вместо простого идентификатора (даже если вы можете изменить это поведение). Мне было интересно, что будет лучшим способом проверки IRI.

Допустим, я получаю, например, "api/users/1". Я хотел бы убедиться, что этот IRI действительно действителен (т.е. идентификатор существует в таблице "пользователь").

Я мог бы создать собственное правило валидатора, которое бы вызывало этот IRI и смотрел, возвращает ли оно верный результат, или даже разделяет строку, чтобы получить идентификатор и таблицу, а затем делает SQL-запрос, чтобы проверить, не является ли он нулевым.

Но я думаю, что оба решения на самом деле не идеальны. Есть ли у вас какие-либо подсказки для меня?

Большое спасибо!

1 ответ

Решение

Платформа API автоматически преобразует IRI в экземпляр объекта, на который ссылаются, в процессе десериализации.

Если указан неверный IRI (неверный или не найден), API-платформа автоматически выдаст ошибку и вернет статус HTTP 400 (неверный запрос).

Вы можете использовать валидатор Symfony как для корневого объекта, так и для связанного объекта (пользователя), если вы хотите добавить более сложные ограничения проверки. Смотрите, например, @Valid ограничение

Другие вопросы по тегам