Что это простыми словами
Django REST Framework (сокращённо DRF) — это надстройка над Django, которая упрощает создание API. API — это способ, которым разные программы общаются друг с другом. Представьте: у вас есть приложение в телефоне, а данные лежат на сервере. API — это посредник, который передаёт запросы туда-сюда: «дай список товаров», «добавь в корзину», «покажи профиль пользователя».
Аналогия: это как официант в ресторане. Вы не идёте на кухню сами — говорите официанту, что хотите, он передаёт заказ, приносит еду. API делает то же самое между приложением и базой данных.
Django сам по себе умеет отдавать готовые HTML-страницы. А DRF учит его отдавать чистые данные (обычно в формате JSON), которые потом использует мобильное приложение, фронтенд или другой сервис.
Официальное определение
Теперь, когда суть понятна, вот как это описывают в вакансиях и документации. Эту формулировку вы будете встречать у заказчика, в резюме и в речи разработчиков — теперь вы понимаете, что за ней стоит.
«Django REST Framework — это мощный и гибкий инструмент для построения Web API на основе Django с поддержкой сериализации, аутентификации и автоматической генерации документации».
Разберём по словам. «Web API» — интерфейс, через который разные программы обмениваются данными через интернет. «REST» (часть названия) — популярный стиль построения API, где каждый запрос независим и понятен: GET /users — получить пользователей, POST /orders — создать заказ. «Сериализация» — превращение данных из базы в формат, который легко передать (обычно JSON), и обратно. «Аутентификация» — проверка, кто отправил запрос, можно ли ему доверять. «Автоматическая генерация документации» — DRF сам создаёт описание API, чтобы другие разработчики понимали, как с ним работать.
Зачем нужен и какую задачу решает
Django изначально создавался для отдачи HTML-страниц целиком — классических сайтов, где сервер сам рисует всю страницу. Но современные приложения устроены иначе: есть мобильное приложение, веб-интерфейс, может быть, ещё smartwatch-версия — и все они должны работать с одними и теми же данными. Им не нужны готовые страницы, им нужны только данные.
Можно написать API на чистом Django, но это долго и однообразно: каждый раз вручную превращать данные в JSON, проверять права доступа, обрабатывать ошибки. DRF берёт эту рутину на себя. Вы описываете структуру данных, а он автоматически создаёт все нужные endpoint'ы (точки входа API), добавляет проверки и документацию. Это экономит недели работы.
К кому относится: язык, специальность, экосистема
Django REST Framework — инструмент backend-разработчика на языке Python. Это надстройка над фреймворком Django, поэтому знать Django — обязательно. «Django REST Framework-разработчик» — это бэкендер на Python, который специализируется на API.
Вокруг DRF выросла своя экосистема — библиотеки, которые вы часто увидите в резюме рядом с ним:
djangorestframework-simplejwt — система входа через токены (вместо логина-пароля каждый раз).
drf-spectacular, drf-yasg — автоматическое создание красивой документации API.
django-filter — фильтрация данных (например, «товары дешевле 1000 рублей»).
django-cors-headers — разрешение запросов с других доменов (например, когда фронтенд на отдельном сервере).
Celery — выполнение тяжёлых задач в фоне (рассылка писем, генерация отчётов).
С чем взаимозаменяем
Главный конкурент DRF в мире Python — FastAPI. Оба создают API на Python, но устроены по-разному: FastAPI — современный, быстрый, но молодой; DRF — зрелый, с огромной экосистемой, но построен на более тяжёлом Django. Ещё один вариант — Flask с расширениями типа Flask-RESTful, но он используется реже.
Эти инструменты НЕ взаимозаменяемы при найме: DRF-разработчик не равен FastAPI-разработчику. Подходы, библиотеки, паттерны — всё разное. Переход требует значительного времени, опыт почти не переносится. Предлагать FastAPI-разработчика на вакансию с DRF — обычно ошибка.
А вот библиотеки внутри экосистемы DRF заменяемы: кто работал с djangorestframework-simplejwt, быстро освоит другую библиотеку для токенов. Это не повод отбраковывать.
Что не путать
Django REST Framework ≠ Django: первый — надстройка для создания API, второй — базовый фреймворк для веба. DRF работает поверх Django, без Django его не бывает. Знать Django обязательно.
REST ≠ API: REST — это стиль построения API (один из многих), а API — общее понятие для любого способа обмена данными между программами. Есть ещё GraphQL, gRPC, WebSocket — это тоже API, но не REST.
DRF ≠ FastAPI: звучат похоже по назначению, но это конкуренты на разных основах. DRF построен на Django, FastAPI — самостоятельный фреймворк. Они не совместимы.
«DRF», «Django REST» и «Django REST Framework» — это одно и то же, просто разные написания. В резюме могут встретиться все варианты.
Насколько это важно при отборе
Короткий ответ: это жёсткий фильтр.
Фреймворк — это «школа». Django REST Framework и FastAPI решают одну задачу, но устроены совершенно по-разному, и опыт между ними почти не переносится. Предлагать FastAPI-разработчика на вакансию с DRF — почти всегда ошибка: человеку понадобятся месяцы, чтобы выйти на прежнюю продуктивность. Отсеивать кандидатов по фреймворку API — нормальная и правильная практика.
Важный нюанс: если кандидат знает Django, но не работал с DRF, это обычно решаемо — надстройка осваивается быстрее, чем переход на другой фреймворк. Но если Django тоже нет — это уже не тот человек.
Не переносите эту строгость на уровень ниже. Библиотеки внутри экосистемы DRF (djangorestframework-simplejwt, drf-spectacular) взаимозаменяемы, и требовать конкретную — ошибка. Правило простое: по фреймворку отсеивать можно, по библиотекам внутри него — нет.
Это общий ориентир. В разных компаниях требования отличаются, поэтому всегда сверяйтесь с текстом конкретной вакансии.