mirror of
				https://github.com/encode/django-rest-framework.git
				synced 2025-11-04 09:57:55 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""
 | 
						|
rest_framework.schemas
 | 
						|
 | 
						|
schemas:
 | 
						|
    __init__.py
 | 
						|
    generators.py   # Top-down schema generation
 | 
						|
    inspectors.py   # Per-endpoint view introspection
 | 
						|
    utils.py        # Shared helper functions
 | 
						|
    views.py        # Houses `SchemaView`, `APIView` subclass.
 | 
						|
 | 
						|
We expose a minimal "public" API directly from `schemas`. This covers the
 | 
						|
basic use-cases:
 | 
						|
 | 
						|
    from rest_framework.schemas import (
 | 
						|
        AutoSchema,
 | 
						|
        ManualSchema,
 | 
						|
        get_schema_view,
 | 
						|
        SchemaGenerator,
 | 
						|
    )
 | 
						|
 | 
						|
Other access should target the submodules directly
 | 
						|
"""
 | 
						|
from rest_framework.settings import api_settings
 | 
						|
 | 
						|
from . import coreapi, openapi
 | 
						|
from .coreapi import AutoSchema, ManualSchema, SchemaGenerator  # noqa
 | 
						|
from .inspectors import DefaultSchema  # noqa
 | 
						|
 | 
						|
 | 
						|
def get_schema_view(
 | 
						|
        title=None, url=None, description=None, urlconf=None, renderer_classes=None,
 | 
						|
        public=False, patterns=None, generator_class=None,
 | 
						|
        authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES,
 | 
						|
        permission_classes=api_settings.DEFAULT_PERMISSION_CLASSES,
 | 
						|
        version=None):
 | 
						|
    """
 | 
						|
    Return a schema view.
 | 
						|
    """
 | 
						|
    if generator_class is None:
 | 
						|
        if coreapi.is_enabled():
 | 
						|
            generator_class = coreapi.SchemaGenerator
 | 
						|
        else:
 | 
						|
            generator_class = openapi.SchemaGenerator
 | 
						|
 | 
						|
    generator = generator_class(
 | 
						|
        title=title, url=url, description=description,
 | 
						|
        urlconf=urlconf, patterns=patterns, version=version
 | 
						|
    )
 | 
						|
 | 
						|
    # Avoid import cycle on APIView
 | 
						|
    from .views import SchemaView
 | 
						|
    return SchemaView.as_view(
 | 
						|
        renderer_classes=renderer_classes,
 | 
						|
        schema_generator=generator,
 | 
						|
        public=public,
 | 
						|
        authentication_classes=authentication_classes,
 | 
						|
        permission_classes=permission_classes,
 | 
						|
    )
 |