Встречается на собеседованиях • сегодня

В чем различия ViewSet и APIView

ViewSet и APIView — оба используются в Django REST Framework, но имеют разные цели и подходы.

APIView — базовый класс для создания API-эндпоинтов. Требует явного определения методов (get, post и т.д.) и маршрутизации в urls.py. Подходит для кастомной логики.

ViewSet — абстракция над APIView, объединяющая логику для связанных операций (CRUD). Использует роутеры для автоматической генерации URL. Подходит для стандартных операций с моделью.

Пример с APIView:

python
from rest_framework.views import APIView

class UserAPI(APIView):
    def get(self, request):
        return Response(...)

Пример с ViewSet:

python
from rest_framework.viewsets import ModelViewSet

class UserViewSet(ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer

Итог:

  • APIView — гибкость, ручная настройка.
  • ViewSet — удобство, автоматизация для стандартных случаев.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы