Как стать автором
Обновить

Как быстро и безболезненно закрыть регресс в API из связки PyTest + JSON Schema

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров4.7K
Всего голосов 12: ↑12 и ↓0+12
Комментарии6

Комментарии 6

Является ли Pydantic альтернативой JSON Schema?

ну в целом - да. Но иногда схема проще и быстрее....Только тут ключевое слово "иногда". Для приведенного в статье примера Pydantic избыточен (ИМХО)

Раньше тоже использовал JSON Schema, но в конечном счете перешел на Pydantic.
Выше говорят, что Pydantic в приведенных примерах избыточен, но мне кажется, что в таком случае всё наоборот– избыточно изучать синтаксис JSON Schema с их типами, если в Pydantic используется родной интерфейс, типы и имеются более гибкие настройки. Сложно представить ситуацию, когда JSON Schema будет проще Pydantic'a.

Редко использую такие проверки в тестах, они хоть что-то ловят, если учитывать, что оно почти наверняка покрыто в юнитах?

Очень вовремя для меня вышла эта статья - не пришлось опять лазить по документации. Почти все нужное в одном месте. На мой взгляд, не хватает примера использования ключа $ref -- ссылок на другие схемы. Даже если пишешь "smoke test" куски схем часто повторяются. Чтобы не дублировать написание, удобно выносить одинаковые параметры или их группы в отдельные файлы схем.

Даже с такими примерами pydantic был бы гораздо удобнее, меньше шансов допустить ошибку, да и коллегам легче понимать или разобраться
редко тесты заключаются только в проверке схемы, проверяешь ещё и данные, с pydantic их легко парсить и получать разное представление.

"Как быстро и безболезненно закрыть регресс в API"
Swagger doc -> datamodel-codegen в pydantic модели + polyfactory для генерации данных
и собирай конструктор

Зарегистрируйтесь на Хабре, чтобы оставить комментарий