Привет, вопрос: как лучше сделать девелопер-френдли сообщения об ошибках

валидации структур данных во входящих запросов к API?

с точки зрения документации - можно взять что то типа zircote/swagger-php и генерить документацию (что бы можно было ссылаться на описание ожидаемой структуры данных.

как делаю сейчас: если компонент сериалайзера смог создать DTO, то ок, если нет, то ошибку отдаём наружу.

чего хочется: ошибка, нет поля xxx, или ошибка, значения в поле YYY могут быть только этими: enum

использовать https://symfony.com/doc/current/validation.html ?

10 ответов

8 просмотров

так а в чем вопрос? как лучше все ошибки засунуть в сваггер? или как сериализировать ошибки валидатора в json?

Maxim-Mesilov Автор вопроса
Шурик
так а в чем вопрос? как лучше все ошибки засунуть ...

меня смущает, что нужно создавать объект для передачи его в валидатор, но объект не создастся, если часть JSON не передали

Maxim Mesilov
меня смущает, что нужно создавать объект для перед...

десериалайзер вроде не создаст объект только в том случае, если невалидный json а дальше дело валидатора

Maxim Mesilov
меня смущает, что нужно создавать объект для перед...

можно валидировать о json-схему строку с json

Maxim-Mesilov Автор вопроса
Maxim Mesilov
А какую либу посоветуешь?

ХЗ, я ничего из них в проде не юзал тыкал openapi psr 7 validator, вроде работает

Пишем ДТО без typed полей. Указываем тип в пхпдоке(7.3 стайл) Добавляем ассерты валидатора Маппим реквест на ДТО сериалайзером. Не смогли? Возвращаем 400. Смогли? Скармливаем дто валидатору. Примерно так

Oleg Okwinza
Пишем ДТО без typed полей. Указываем тип в пхпдоке...

у меня мысль была сделать чуть по другому - берем интроспекцию dto на основе которой генерим правила валидации которые будем применять не к dto после мэппинга а к массиву данных из запроса. Но пока было лень

Sergey P
у меня мысль была сделать чуть по другому - берем ...

https://github.com/Myaza-Software/Schema-Validator (правда очень сырой) на проде еще не тестил. Плюс пару нюансов по типу: Циклические ссылки,NameConverter не поддерживаются и еще чота

Vlad Shashkov
https://github.com/Myaza-Software/Schema-Validator...

Выглядит сложным и неудобным

Похожие вопросы

Обсуждают сегодня

Короче я тут узнал полный пиздец Что кучу постов которые я создавал через posted Спустя время не могу редактировать и менять Мол телега возвращае ошибку Это реально так ...
inc.
13
Привет, сталкивался кто с такой ситуацией? У меня есть модальное окно Bootstrap, в нем кнопка закрытия: <button type="button" class="btn-close" data-bs-dismiss="modal" aria-...
Виталий
3
А если изначально бот работал так : есть сайт онлайн школы. У каждого ученика свой кабинет. Где он авторизуется по своим данным. И уже в кабинете, на самом сайте делает оплату...
Денис 💡 Фрилансер
13
что это и почему оно? executor.start_polling(bot, skip_updates=True, on_startup=on_startup, File "/usr/local/lib/python3.10/dist-packages/aiogram/utils/executor.py", line 4...
𐌍𐌄 ᕓ𐌄𐌓𐌌Ꝋ𐌓𐌄
2
Какой число последнее будет, если сказали от 1 до 10 взять все?
Misha Mikhail
5
А у тебя есть информация сколько сейчас использует твой бот?
Artem Stormageddon
4
Окрошка! На квасе или кефире или на пиве?!
Akcium Сергей
4
Забавно, но для тебя "этот" = "следующий" т.е этот год для тебя какой?
Magic
3
Кто-то юзал insomnia? Удобная штука ужас
𐌍𐌄 ᕓ𐌄𐌓𐌌Ꝋ𐌓𐌄
3
Создан плагин через artisan, миграций не будет, как его активировать в админке?
Point 111
2
Карта сайта