За последние годы Django REST Framework (DRF) стал стандартом для создания API на Django. Однако его популярность принесла не только удобства: набор абстракций, настроек и магии иногда уводит разработчиков от простого и прозрачного подхода. Там, где раньше достаточно было пары строк и понятной логики, теперь появляется слой сериализаторов, viewset'ов, роутеров и сериализаторных полей, которые нужно изучать и поддерживать. DRF действительно ускоряет разработку типичных задач — авторизация, валидация, пагинация и документация — и позволяет быстро собрать рабочий API. Но цена за это — рост сложности.
Новички могут полагаться на "волшебство" фреймворка, не понимая, что происходит под капотом. Команда начинает создавать тонны настроек, кастомных миксинов и абстракций, которые трудно тестировать и ещё труднее менять. В результате проект теряет простоту: мелкие изменения требуют понимания множества связанных компонентов, а отладки становятся длительнее. В некоторых случаях проще написать минимальный набор ручных представлений и сериализаторов или даже использовать функциональные представления, чем пытаться обойти ограничения и побочные эффекты DRF.
Выбор между удобством из коробки и контролем над кодом — ключевой. Стоит помнить: инструменты хороши, когда служат задаче, а не становятся самоцелью.
