Skip to content

Быстрый старт

Установка

$ pip install djo

Добавьте в INSTALLED_APPS

Это вся настройка целиком — никаких правок urls.py, никаких дополнительных настроек:

# settings.py
INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "djo",
]

Запустите проект

$ python manage.py runserver

Откройте документацию

Перейдите на http://127.0.0.1:8000/docs.

djo обходит ROOT_URLCONF в момент запроса страницы и строит живую OpenAPI-схему из всего, что найдёт — каждую запись path()/re_path(), включая маршруты сторонних приложений (например, django.contrib.admin, как на скриншоте ниже):

Swagger UI

Разверните любую операцию, чтобы увидеть path/query-параметры, автоматически определённое тело запроса и коды ответов. Нажмите Try it out, чтобы отправить настоящий запрос прямо из браузера — djo сам подставляет CSRF-cookie, поэтому POST/PUT/PATCH/DELETE работают из коробки против view с сессионной аутентификацией.

Почему не нужно трогать urls.py

djo.apps.DjangoAPIConfig.ready() добавляет djo.middleware.DjangoAPIMiddleware в начало settings.MIDDLEWARE в момент загрузки приложения — ready() всегда выполняется во время django.setup(), а это происходит раньше, чем Django строит цепочку middleware. Именно этот порядок и позволяет всему пакету работать от одной записи в INSTALLED_APPS. Подробности — в разделе Как это работает.

Дальше

  • Обзор возможностей — что именно djo определяет автоматически и откуда берёт данные.
  • Конфигурация — переопределение заголовка, версии, описания и путей документации.
  • Демо-проект — рабочий пример, который можно запустить локально.