diff --git a/rest_framework/schemas/__init__.py b/rest_framework/schemas/__init__.py index b63cb2353..2e3c0fc72 100644 --- a/rest_framework/schemas/__init__.py +++ b/rest_framework/schemas/__init__.py @@ -32,7 +32,7 @@ def get_schema_view( public=False, patterns=None, generator_class=None, authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES, permission_classes=api_settings.DEFAULT_PERMISSION_CLASSES, - version=None): + version=None, **kwargs): """ Return a schema view. """ @@ -44,7 +44,7 @@ def get_schema_view( generator = generator_class( title=title, url=url, description=description, - urlconf=urlconf, patterns=patterns, version=version + urlconf=urlconf, patterns=patterns, version=version, **kwargs ) # Avoid import cycle on APIView diff --git a/rest_framework/schemas/generators.py b/rest_framework/schemas/generators.py index d3c6446aa..96409193d 100644 --- a/rest_framework/schemas/generators.py +++ b/rest_framework/schemas/generators.py @@ -151,7 +151,9 @@ class BaseSchemaGenerator: # Set by 'SCHEMA_COERCE_PATH_PK'. coerce_path_pk = None - def __init__(self, title=None, url=None, description=None, patterns=None, urlconf=None, version=None): + def __init__(self, title=None, url=None, description=None, + patterns=None, urlconf=None, version=None, **kwargs): + if url and not url.endswith('/'): url += '/' @@ -165,6 +167,9 @@ class BaseSchemaGenerator: self.url = url self.endpoints = None + for k, v in kwargs.items(): + setattr(self, k, v) + def _initialise_endpoints(self): if self.endpoints is None: inspector = self.endpoint_inspector_cls(self.patterns, self.urlconf) diff --git a/rest_framework/schemas/openapi.py b/rest_framework/schemas/openapi.py index 9774a94c7..0009cecba 100644 --- a/rest_framework/schemas/openapi.py +++ b/rest_framework/schemas/openapi.py @@ -113,9 +113,8 @@ class SchemaGenerator(BaseSchemaGenerator): return schema + # View Inspectors - - class AutoSchema(ViewInspector): def __init__(self, tags=None, operation_id_base=None, component_name=None):