валидации структур данных во входящих запросов к API?
с точки зрения документации - можно взять что то типа zircote/swagger-php и генерить документацию (что бы можно было ссылаться на описание ожидаемой структуры данных.
как делаю сейчас: если компонент сериалайзера смог создать DTO, то ок, если нет, то ошибку отдаём наружу.
чего хочется: ошибка, нет поля xxx, или ошибка, значения в поле YYY могут быть только этими: enum
использовать https://symfony.com/doc/current/validation.html ?
так а в чем вопрос? как лучше все ошибки засунуть в сваггер? или как сериализировать ошибки валидатора в json?
меня смущает, что нужно создавать объект для передачи его в валидатор, но объект не создастся, если часть JSON не передали
десериалайзер вроде не создаст объект только в том случае, если невалидный json а дальше дело валидатора
можно валидировать о json-схему строку с json
А какую либу посоветуешь?
ХЗ, я ничего из них в проде не юзал тыкал openapi psr 7 validator, вроде работает
Пишем ДТО без typed полей. Указываем тип в пхпдоке(7.3 стайл) Добавляем ассерты валидатора Маппим реквест на ДТО сериалайзером. Не смогли? Возвращаем 400. Смогли? Скармливаем дто валидатору. Примерно так
у меня мысль была сделать чуть по другому - берем интроспекцию dto на основе которой генерим правила валидации которые будем применять не к dto после мэппинга а к массиву данных из запроса. Но пока было лень
https://github.com/Myaza-Software/Schema-Validator (правда очень сырой) на проде еще не тестил. Плюс пару нюансов по типу: Циклические ссылки,NameConverter не поддерживаются и еще чота
Выглядит сложным и неудобным
Обсуждают сегодня