📝 Django

Swagger документация с drf-spectacular

P
Автор
PyLand Team
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
566
🌳
Уровень
Продвинутый

drf-spectacular генерирует OpenAPI 3.0 схему и Swagger UI для DRF.

Установка

pip install drf-spectacular
INSTALLED_APPS = [
    ...
    'drf_spectacular',
]

REST_FRAMEWORK = {
    'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
}

Настройка схемы

SPECTACULAR_SETTINGS = {
    'TITLE': 'Task Manager API',
    'DESCRIPTION': 'API для управления задачами',
    'VERSION': '1.0.0',
    'SERVE_INCLUDE_SCHEMA': False,
}

URLs

from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView, SpectacularRedocView

urlpatterns = [
    path('api/schema/', SpectacularAPIView.as_view(), name='schema'),
    path('api/docs/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'),
    path('api/redoc/', SpectacularRedocView.as_view(url_name='schema'), name='redoc'),
]

Открой /api/docs/ для интерактивной документации.

Аннотации

from drf_spectacular.utils import extend_schema, OpenApiParameter

class TaskViewSet(viewsets.ModelViewSet):

    @extend_schema(
        summary='Список задач',
        description='Возвращает задачи текущего пользователя',
        parameters=[
            OpenApiParameter('status', str, description='Фильтр по статусу'),
        ],
    )
    def list(self, request):
        return super().list(request)

    @extend_schema(summary='Создать задачу')
    def create(self, request):
        return super().create(request)

Документирование сериализатора

class TaskSerializer(serializers.ModelSerializer):
    class Meta:
        model = Task
        fields = ['id', 'title', 'status']
        # drf-spectacular автоматически генерирует описание из модели

Генерация схемы в файл

python manage.py spectacular --color --file schema.yml

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

Поиск в Django

Поиск в Django можно начать с простых ORM-фильтров, а для ранжирования и полнотекстового поиска использовать...

📅 30.06.2026 👁️ 280
📝

settings.py: настройки Django

settings.py — центральный конфигурационный файл Django-проекта.

📅 30.06.2026 👁️ 316
📝

DRF Сериализаторы

Сериализатор преобразует объекты модели ↔ Python dict ↔ JSON.

📅 30.06.2026 👁️ 271

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!