Я потом наследуюсь от протокола вот тут. Это нужно для того, чтобы быть уверенным, что какой-то класс удовлетворяет протоколу. Когда у вас много протоколов и объектов которые имплементируют их, то такое поведение очень удобно
На самом деле у нас pydantic то и не было, у нас была своё самописная библиотека для этих целей. Просто поддерживать её не представляется возможным.
Если выделить, чем нам pydantic не нравится, то: - Не позволяет создавать один и тот же класс из нескольких источников или отдавать в разном виде. - При создании модели вручную, нужно передавать поля по алиасам, allow_population_by_name не решает эту проблему. - Неявные преобразование типов - По мелочи какое-то неявное поведение
Ну если говорить о том, чем он лучше FastAPI, то тут можно выделить несколько моментов: 1. Гвоздями не прибит pydantic 2. Есть ClassView (мне нравится) 3. Depends от FastAPI отражается в OpenAPI схеме, в Litestar - нет
На прод только планируем затаскивать для одного из сервисов. Единственное, что вместо pydantic планируем использовать msgspec.
Из неочевидных особенностей хочу отметить, что тащить все батарейки из Litestar к себе в проект не стоит, лучше ограничиться только функционалом http фреймворка.
Я потом наследуюсь от протокола вот тут.
Это нужно для того, чтобы быть уверенным, что какой-то класс удовлетворяет протоколу.
Когда у вас много протоколов и объектов которые имплементируют их, то такое поведение очень удобно
PEP 544
На самом деле у нас pydantic то и не было, у нас была своё самописная библиотека для этих целей. Просто поддерживать её не представляется возможным.
Если выделить, чем нам pydantic не нравится, то:
- Не позволяет создавать один и тот же класс из нескольких источников или отдавать в разном виде.
- При создании модели вручную, нужно передавать поля по алиасам, allow_population_by_name не решает эту проблему.
- Неявные преобразование типов
- По мелочи какое-то неявное поведение
Ну если говорить о том, чем он лучше FastAPI, то тут можно выделить несколько моментов:
1. Гвоздями не прибит pydantic
2. Есть ClassView (мне нравится)
3. Depends от FastAPI отражается в OpenAPI схеме, в Litestar - нет
На прод только планируем затаскивать для одного из сервисов.
Единственное, что вместо pydantic планируем использовать msgspec.
Из неочевидных особенностей хочу отметить, что тащить все батарейки из Litestar к себе в проект не стоит, лучше ограничиться только функционалом http фреймворка.