Запрос валидатора: подтвердить IRI - PullRequest
0 голосов
/ 08 мая 2018

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

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

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

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

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

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

1 Ответ

0 голосов
/ 15 мая 2018

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

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

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

...