D
DevBrain
@devbrain3.3K подп.
2.1Kпросмотров
62.6%от подписчиков
1 ноября 2025 г.
question📷 ФотоScore: 2.3K
Зачем нужен новый REST API для Django? Последний месяц я крайне увлечен созданием https://github.com/wemake-services/django-modern-rest (Кстати, у нас уже >200 звезд и 26 контрибьюторов при 0 релизов) Ключевой вопрос – зачем? Что будет нового? Во-первых, я крайне сильно люблю Django. Основная причина – под него есть буквально любые библиотеки. Все то, что в FastAPI нужно героически писать руками – в джанге уже давно есть и работает. Но, есть несколько основных причин, почему люди думают, что не любят джангу: 1. DRF, тут без лишних слов – он ужасен. Нет типизации, нет async, очень сложно работать с ним в сложных случаях 2. Многие считают, что джанга - сложная. Однако, она как FastAPI или Litestar может спокойно уместиться в один файл: https://django-modern-rest.readthedocs.io/en/latest/pages/micro-framework.html 3. Есть критика за архитектуру: тут нечего особо даже комментировать. На любом фреймворке можно писать хорошо, на любом можно писать плохо. Слой фреймворка очень тонкий 4. Медленный. А вот тут остановимся подробнее. На скринах выше можно сравнить, что с django-modern-rest, без нескольких будущих оптимизаций (привет cython и rust!), голая джанга начинает выглядеть не так уж и медленнее FastAPI: бенчи. Во-вторых, Django на длительный срок был в плену DRF. Который морально устарел еще в середине десятых. Потом появилась django-ninja, которая хоть и намного лучше, но все равно не решает главную задачу: интеграция с существующими тулами. Конечно, если затащить FastAPI дизайн в чужой мир, то ничего не будет нормально работать 🌚️️ Вот такие проблемы мы решаем. Одной строкой: - Супер строгая OpenAPI схема и валидация при разработке, что мы ее соблюдаем - Полная типизация всего - Нормальный способ создания АПИ, без god-functions a-la FastAPI - async без sync_to_async - Быстро: msgspec для парсинга json (самый быстрый способ в питоне), практически 0 работы в рантайме (все делаем при импорте), оптимизации роутера (быстрее дефолтного в 51 раз) - Пидантик, msgspec, или любой другой способ выражать модели. Хоть adaptix - Полная поддержка всего существующего в Django. От декораторов до миддлварь (с полной валидацией и OpenAPI схемой!) - OpenAPI схема из коробки - Удобное тестирование с polyfactory - property-based тесты вашего АПИ одной командой благодаря schemathesis Что еще будет: - RSGI (да, на #rust скорее всего) под granian, в теории можем побить FastAPI после такого - SSE с автоматической OpenAPI спекой и умной валидацией схемы - JWT или любая другая аутентификация - Какие-то части (скорее всего валидацию) мы компильнем cython, чтобы было еще быстрее Modern? Modern! Осталось дождаться. Релиз скоро! И еще скоро будут несколько новых видео. Мы регулярно постим задачки в @opensource_findings_python, так что можно нам помочь. А если кто хочет мне закинуть на развитие опенсорса (за написание 32500 строк кода за 2 недели), то мой бусти открыт: https://boosty.to/sobolevn Ну и звезды можно ставить, конечно же. Там посмотрите, какие люди нас уже советуют. Большое спасибо Александру, Алексею, Роману, Максиму и всем остальным за неоценимую помощь. Пацаны, без вас никак! Лучшее сообщество! Обсуждение: а чего бы вам хотелось в modern rest фреймворке? Чего сильно не хватает сейчас?
2.1K
просмотров
3238
символов
Нет
эмодзи
Да
медиа

Другие посты @devbrain

Все посты канала →
Зачем нужен новый REST API для Django? Последний месяц я кра — @devbrain | PostSniper