Skip to the content.

API Reference

Complete API documentation for Django Revolution.

Configuration

DjangoRevolutionSettings

Main configuration class for Django Revolution.

from django_revolution.config import DjangoRevolutionSettings

settings = DjangoRevolutionSettings(
    zones={
        'public': ZoneModel(
            apps=['accounts', 'billing'],
            title='Public API',
            description='Public endpoints',
            public=True,
            auth_required=False,
            version='v1',
            path_prefix='public'
        )
    },
    output_dir='openapi',
    auto_install_deps=True,
    typescript_enabled=True,
    python_enabled=True,
    archive_clients=True
)

ZoneModel

Configuration for a single API zone.

from django_revolution.config import ZoneModel

zone = ZoneModel(
    apps=['accounts', 'billing'],      # Django apps to include
    title='Public API',                # Human-readable title
    description='Public endpoints',    # Zone description
    public=True,                       # Is publicly accessible
    auth_required=False,               # Requires authentication
    version='v1',                      # API version
    path_prefix='public'               # URL path prefix
)

Functions

get_settings()

Get Django Revolution settings from Django settings.

from django_revolution.config import get_settings

settings = get_settings()
print(settings.zones)

add_revolution_urls()

Add Django Revolution URLs to your URL patterns.

from django_revolution.urls_integration import add_revolution_urls

urlpatterns = [
    # Your existing URLs
]

urlpatterns = add_revolution_urls(urlpatterns)

get_revolution_urlpatterns()

Get Django Revolution URL patterns.

from django_revolution.urls_integration import get_revolution_urlpatterns

urlpatterns = [
    # Your existing URLs
    *get_revolution_urlpatterns()
]

get_revolution_urls_info()

Get information about generated URLs.

from django_revolution.urls_integration import get_revolution_urls_info

info = get_revolution_urls_info()
print(info['zones'])  # List of configured zones
print(info['schemas'])  # List of schema URLs

Classes

ZoneManager

Manages API zones and their configuration.

from django_revolution.zones import ZoneManager

manager = ZoneManager()
zones = manager.get_zones()

ZoneDetector

Automatically detects zones from Django apps.

from django_revolution.zones import ZoneDetector

detector = ZoneDetector()
zones = detector.detect_zones()

OpenAPIGenerator

Generates OpenAPI schemas and clients.

from django_revolution.openapi import OpenAPIGenerator

generator = OpenAPIGenerator()
generator.generate()

Management Commands

revolution

Main Django management command for Django Revolution.

python manage.py revolution [options]

Options:

Templates

Custom Templates

You can customize generated client templates:

# settings.py
DJANGO_REVOLUTION = {
    'templates': {
        'typescript': {
            'package_name': '@myorg/api-client',
            'package_version': '1.0.0',
            'custom_template': 'path/to/template.ts.j2'
        },
        'python': {
            'package_name': 'myorg-api-client',
            'package_version': '1.0.0',
            'custom_template': 'path/to/template.py.j2'
        }
    }
}

Utilities

Logger

Django Revolution logger for debugging.

from django_revolution.utils import Logger

logger = Logger()
logger.info("Generating clients...")
logger.error("Generation failed")

ErrorHandler

Handles errors during client generation.

from django_revolution.utils import ErrorHandler

handler = ErrorHandler()
try:
    # Generate clients
    pass
except Exception as e:
    handler.handle_error(e)

← Back to CLI Reference Next: Architecture →