API Автотесты
Ситуация: два подхода к валидации API-ответов — я использую Pydantic, считая его удобным, многофункциональным, проще поддерживаемым и современным. Мой коллега предпочитает jsonschema, не видя причин для смены, считая что он может всё тоже самое. Противостояние на совместном проекте привело к разделению зон покрытия: я взял eshop, он — pim. Я неистово топлю за Pydantic но не могу убедить коллегу...
Не тратя время на исследования, ИИ выдал базу:
Удобство и поддержка — pydantic упрощает модели через аннотации, делая обновления быстрыми. jsonschema требует ручных генераций схем, что трудоемко.
Производительность — pydantic в 10 раз быстрее на больших данных благодаря Rust. jsonschema медленнее при вложенных структурах.
Гибкость — pydantic предлагает кастомные валидаторы и интеграцию с OpenAPI. jsonschema универсален для кросс-платформ, но кастомизация сложнее.
Интеграция с тестами — pydantic легко работает с PyTest и Allure. jsonschema требует настройки.
Обучение — pydantic имеет сильное сообщество (360 млн скачиваний) и документацию. jsonschema требует знания JSON-стандарта.
Вывод: Pydantic выигрывает в большинстве ситуаций, если не сказать что во всех.
Безусловно, брать ответ ИИ не рассмотрев его под лупой, на сегодняшний день, это глупо: он далеко не всегда учитывает контекст, реальный опыт и множество других факторов которые могут повлиять на правильное решение.
Очевидно что я не смогу убедить коллегу, и пока мы на низком старте, у меня не будет наглядных примеров по преимуществу. А когда они появятся будет уже слишком поздно - что в целом меня конечно не особо расстраивает.
А может я не прав?
Приглашаю к обсуждению:
Какой инструмент вы предпочитаете для валидации API в автотестах и почему?
Бывали ли случаи, когда смешивание Pydantic и jsonschema вызвало проблемы? Или наоборот, помогало?
Стоит ли разделять подходы в одном проекте, как это сделали мы?
Возможно я не так понял формат постов, т.к. ожидал тут увидеть возможность голосования как в статьях. Принять и простить)