В чем различия ViewSet и APIView
Python
Middle
Без компании
В чем различия ViewSet и APIView
Ответы
ViewSet и APIView — оба используются в Django REST Framework, но имеют разные цели и подходы.
**APIView** — базовый класс для создания API-эндпоинтов. Требует явного определения методов (get, post и т.д.) и маршрутизации в urls.py. Подходит для кастомной логики.
**ViewSet** — абстракция над APIView, объединяющая логику для связанных операций (CRUD). Использует роутеры для автоматической генерации URL. Подходит для стандартных операций с моделью.
Пример с APIView:
```
from rest_framework.views import APIView
class UserAPI(APIView):
def get(self, request):
return Response(...)
```
Пример с ViewSet:
```
from rest_framework.viewsets import ModelViewSet
class UserViewSet(ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
```
**Итог:**
- APIView — гибкость, ручная настройка.
- ViewSet — удобство, автоматизация для стандартных случаев.