Расскажи про основные классы в Django REST Framework
Python
Junior
Без компании
Расскажи про основные классы в Django REST Framework
Ответы
Django REST Framework (DRF) предоставляет несколько ключевых классов для создания API:
- **APIView** – базовый класс для представлений, аналогичен Django View, но с дополнительными методами для обработки HTTP-запросов (get, post и т.д.).
- **ViewSet** – абстракция над APIView, объединяющая логику для связанных эндпоинтов (list, retrieve, create и др.).
- **ModelViewSet** – готовый ViewSet для CRUD операций с моделью, включает все стандартные действия.
- **Serializer** – преобразует сложные типы данных (например, модели Django) в JSON/XML и обратно.
- **ModelSerializer** – упрощает создание сериализаторов для моделей Django.
Пример ModelViewSet:
```
from rest_framework import viewsets
from .models import Book
from .serializers import BookSerializer
class BookViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializer
```
DRF также включает **Router** для автоматической маршрутизации URL к ViewSet и **Permissions** для контроля доступа.