|
1 |
| -""" |
2 |
| -rest_framework.schemas |
3 |
| -
|
4 |
| -schemas: |
5 |
| - __init__.py |
6 |
| - generators.py # Top-down schema generation |
7 |
| - inspectors.py # Per-endpoint view introspection |
8 |
| - utils.py # Shared helper functions |
9 |
| - views.py # Houses `SchemaView`, `APIView` subclass. |
10 |
| -
|
11 |
| -We expose a minimal "public" API directly from `schemas`. This covers the |
12 |
| -basic use-cases: |
13 |
| -
|
14 |
| - from rest_framework.schemas import ( |
15 |
| - AutoSchema, |
16 |
| - ManualSchema, |
17 |
| - get_schema_view, |
18 |
| - SchemaGenerator, |
19 |
| - ) |
20 |
| -
|
21 |
| -Other access should target the submodules directly |
22 |
| -""" |
23 |
| -from rest_framework.settings import api_settings |
24 |
| - |
25 |
| -from . import coreapi, openapi |
26 |
| -from .coreapi import AutoSchema, ManualSchema, SchemaGenerator # noqa |
27 |
| -from .inspectors import DefaultSchema # noqa |
28 |
| - |
29 |
| - |
30 |
| -def get_schema_view( |
31 |
| - title=None, url=None, description=None, urlconf=None, renderer_classes=None, |
32 |
| - public=False, patterns=None, generator_class=None, |
33 |
| - authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES, |
34 |
| - permission_classes=api_settings.DEFAULT_PERMISSION_CLASSES, |
35 |
| - version=None): |
36 |
| - """ |
37 |
| - Return a schema view. |
38 |
| - """ |
39 |
| - if generator_class is None: |
40 |
| - if coreapi.is_enabled(): |
41 |
| - generator_class = coreapi.SchemaGenerator |
42 |
| - else: |
43 |
| - generator_class = openapi.SchemaGenerator |
44 |
| - |
45 |
| - generator = generator_class( |
46 |
| - title=title, url=url, description=description, |
47 |
| - urlconf=urlconf, patterns=patterns, version=version |
48 |
| - ) |
49 |
| - |
50 |
| - # Avoid import cycle on APIView |
51 |
| - from .views import SchemaView |
52 |
| - return SchemaView.as_view( |
53 |
| - renderer_classes=renderer_classes, |
54 |
| - schema_generator=generator, |
55 |
| - public=public, |
56 |
| - authentication_classes=authentication_classes, |
57 |
| - permission_classes=permission_classes, |
58 |
| - ) |
0 commit comments