mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-25 11:04:02 +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,
|
|
)
|