mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-02 03:20:12 +03:00
Add DEFAULT_SCHEMA_GENERATOR_CLASS setting
This commit is contained in:
parent
d99550e54c
commit
7428f58ee4
|
@ -1,7 +1,8 @@
|
||||||
from django.core.management.base import BaseCommand
|
from django.core.management.base import BaseCommand
|
||||||
|
|
||||||
from rest_framework.renderers import CoreJSONRenderer
|
from rest_framework.renderers import CoreJSONRenderer, JSONRenderer
|
||||||
from rest_framework.schemas import SchemaGenerator
|
from rest_framework.schemas.generators import OpenAPISchemaGenerator
|
||||||
|
from rest_framework.settings import api_settings
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
|
@ -26,11 +27,21 @@ class Command(BaseCommand):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
|
generator_class = self._get_generator_class()
|
||||||
|
generator = generator_class()
|
||||||
|
|
||||||
renderer = CoreJSONRenderer()
|
|
||||||
generator = SchemaGenerator()
|
|
||||||
schema = generator.get_schema(request=None, public=True)
|
schema = generator.get_schema(request=None, public=True)
|
||||||
|
|
||||||
|
renderer = self._get_renderer(generator)
|
||||||
rendered_schema = renderer.render(schema, renderer_context={}).decode('utf8')
|
rendered_schema = renderer.render(schema, renderer_context={}).decode('utf8')
|
||||||
|
|
||||||
self.stdout.write(rendered_schema)
|
self.stdout.write(rendered_schema)
|
||||||
|
|
||||||
|
def _get_generator_class(self):
|
||||||
|
return api_settings.DEFAULT_SCHEMA_GENERATOR_CLASS
|
||||||
|
|
||||||
|
def _get_renderer(self, generator):
|
||||||
|
if isinstance(generator, OpenAPISchemaGenerator):
|
||||||
|
return JSONRenderer()
|
||||||
|
else:
|
||||||
|
return CoreJSONRenderer()
|
||||||
|
|
|
@ -57,6 +57,7 @@ DEFAULTS = {
|
||||||
|
|
||||||
# Schema
|
# Schema
|
||||||
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema',
|
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema',
|
||||||
|
'DEFAULT_SCHEMA_GENERATOR_CLASS': 'rest_framework.schemas.generators.SchemaGenerator',
|
||||||
|
|
||||||
# Throttling
|
# Throttling
|
||||||
'DEFAULT_THROTTLE_RATES': {
|
'DEFAULT_THROTTLE_RATES': {
|
||||||
|
@ -144,6 +145,7 @@ IMPORT_STRINGS = (
|
||||||
'DEFAULT_PAGINATION_CLASS',
|
'DEFAULT_PAGINATION_CLASS',
|
||||||
'DEFAULT_FILTER_BACKENDS',
|
'DEFAULT_FILTER_BACKENDS',
|
||||||
'DEFAULT_SCHEMA_CLASS',
|
'DEFAULT_SCHEMA_CLASS',
|
||||||
|
'DEFAULT_SCHEMA_GENERATOR_CLASS',
|
||||||
'EXCEPTION_HANDLER',
|
'EXCEPTION_HANDLER',
|
||||||
'TEST_REQUEST_RENDERER_CLASSES',
|
'TEST_REQUEST_RENDERER_CLASSES',
|
||||||
'UNAUTHENTICATED_USER',
|
'UNAUTHENTICATED_USER',
|
||||||
|
|
Loading…
Reference in New Issue
Block a user