|
22 | 22 | """ |
23 | 23 | from rest_framework.settings import api_settings |
24 | 24 |
|
| 25 | +from . import coreapi, openapi |
25 | 26 | from .inspectors import DefaultSchema # noqa |
26 | 27 | from .coreapi import AutoSchema, ManualSchema, SchemaGenerator # noqa |
27 | 28 |
|
28 | 29 |
|
29 | 30 | def get_schema_view( |
30 | 31 | title=None, url=None, description=None, urlconf=None, renderer_classes=None, |
31 | | - public=False, patterns=None, generator_class=SchemaGenerator, |
| 32 | + public=False, patterns=None, generator_class=None, |
32 | 33 | authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES, |
33 | 34 | permission_classes=api_settings.DEFAULT_PERMISSION_CLASSES): |
34 | 35 | """ |
35 | 36 | Return a schema view. |
36 | 37 | """ |
37 | | - # Avoid import cycle on APIView |
38 | | - from .views import SchemaView |
| 38 | + if generator_class is None: |
| 39 | + if coreapi.is_enabled(): |
| 40 | + generator_class = coreapi.SchemaGenerator |
| 41 | + else: |
| 42 | + generator_class = openapi.SchemaGenerator |
| 43 | + |
39 | 44 | generator = generator_class( |
40 | 45 | title=title, url=url, description=description, |
41 | 46 | urlconf=urlconf, patterns=patterns, |
42 | 47 | ) |
| 48 | + |
| 49 | + # Avoid import cycle on APIView |
| 50 | + from .views import SchemaView |
43 | 51 | return SchemaView.as_view( |
44 | 52 | renderer_classes=renderer_classes, |
45 | 53 | schema_generator=generator, |
|
0 commit comments