Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
django-rest-framework
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
django-rest-framework
Commits
8f6173cd
Commit
8f6173cd
authored
Apr 18, 2017
by
Tom Christie
Committed by
GitHub
Apr 18, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #5082 from valohai/customizable-schema-generator
Customizable schema generator classes
parents
bd768d62
53f48d15
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
11 deletions
+24
-11
rest_framework/documentation.py
+12
-8
rest_framework/routers.py
+2
-1
rest_framework/schemas.py
+10
-2
No files found.
rest_framework/documentation.py
View file @
8f6173cd
...
@@ -3,10 +3,10 @@ from django.conf.urls import include, url
...
@@ -3,10 +3,10 @@ from django.conf.urls import include, url
from
rest_framework.renderers
import
(
from
rest_framework.renderers
import
(
CoreJSONRenderer
,
DocumentationRenderer
,
SchemaJSRenderer
CoreJSONRenderer
,
DocumentationRenderer
,
SchemaJSRenderer
)
)
from
rest_framework.schemas
import
get_schema_view
from
rest_framework.schemas
import
SchemaGenerator
,
get_schema_view
def
get_docs_view
(
title
=
None
,
description
=
None
,
schema_url
=
None
,
public
=
True
):
def
get_docs_view
(
title
=
None
,
description
=
None
,
schema_url
=
None
,
public
=
True
,
generator_class
=
SchemaGenerator
):
renderer_classes
=
[
DocumentationRenderer
,
CoreJSONRenderer
]
renderer_classes
=
[
DocumentationRenderer
,
CoreJSONRenderer
]
return
get_schema_view
(
return
get_schema_view
(
...
@@ -14,11 +14,12 @@ def get_docs_view(title=None, description=None, schema_url=None, public=True):
...
@@ -14,11 +14,12 @@ def get_docs_view(title=None, description=None, schema_url=None, public=True):
url
=
schema_url
,
url
=
schema_url
,
description
=
description
,
description
=
description
,
renderer_classes
=
renderer_classes
,
renderer_classes
=
renderer_classes
,
public
=
public
public
=
public
,
generator_class
=
generator_class
,
)
)
def
get_schemajs_view
(
title
=
None
,
description
=
None
,
schema_url
=
None
,
public
=
True
):
def
get_schemajs_view
(
title
=
None
,
description
=
None
,
schema_url
=
None
,
public
=
True
,
generator_class
=
SchemaGenerator
):
renderer_classes
=
[
SchemaJSRenderer
]
renderer_classes
=
[
SchemaJSRenderer
]
return
get_schema_view
(
return
get_schema_view
(
...
@@ -26,22 +27,25 @@ def get_schemajs_view(title=None, description=None, schema_url=None, public=True
...
@@ -26,22 +27,25 @@ def get_schemajs_view(title=None, description=None, schema_url=None, public=True
url
=
schema_url
,
url
=
schema_url
,
description
=
description
,
description
=
description
,
renderer_classes
=
renderer_classes
,
renderer_classes
=
renderer_classes
,
public
=
public
public
=
public
,
generator_class
=
generator_class
,
)
)
def
include_docs_urls
(
title
=
None
,
description
=
None
,
schema_url
=
None
,
public
=
True
):
def
include_docs_urls
(
title
=
None
,
description
=
None
,
schema_url
=
None
,
public
=
True
,
generator_class
=
SchemaGenerator
):
docs_view
=
get_docs_view
(
docs_view
=
get_docs_view
(
title
=
title
,
title
=
title
,
description
=
description
,
description
=
description
,
schema_url
=
schema_url
,
schema_url
=
schema_url
,
public
=
public
public
=
public
,
generator_class
=
generator_class
,
)
)
schema_js_view
=
get_schemajs_view
(
schema_js_view
=
get_schemajs_view
(
title
=
title
,
title
=
title
,
description
=
description
,
description
=
description
,
schema_url
=
schema_url
,
schema_url
=
schema_url
,
public
=
public
public
=
public
,
generator_class
=
generator_class
,
)
)
urls
=
[
urls
=
[
url
(
r'^$'
,
docs_view
,
name
=
'docs-index'
),
url
(
r'^$'
,
docs_view
,
name
=
'docs-index'
),
...
...
rest_framework/routers.py
View file @
8f6173cd
...
@@ -316,6 +316,7 @@ class DefaultRouter(SimpleRouter):
...
@@ -316,6 +316,7 @@ class DefaultRouter(SimpleRouter):
default_schema_renderers
=
None
default_schema_renderers
=
None
APIRootView
=
APIRootView
APIRootView
=
APIRootView
APISchemaView
=
SchemaView
APISchemaView
=
SchemaView
SchemaGenerator
=
SchemaGenerator
def
__init__
(
self
,
*
args
,
**
kwargs
):
def
__init__
(
self
,
*
args
,
**
kwargs
):
if
'schema_title'
in
kwargs
:
if
'schema_title'
in
kwargs
:
...
@@ -342,7 +343,7 @@ class DefaultRouter(SimpleRouter):
...
@@ -342,7 +343,7 @@ class DefaultRouter(SimpleRouter):
"""
"""
Return a schema root view.
Return a schema root view.
"""
"""
schema_generator
=
SchemaGenerator
(
schema_generator
=
self
.
SchemaGenerator
(
title
=
self
.
schema_title
,
title
=
self
.
schema_title
,
url
=
self
.
schema_url
,
url
=
self
.
schema_url
,
patterns
=
api_urls
patterns
=
api_urls
...
...
rest_framework/schemas.py
View file @
8f6173cd
...
@@ -694,11 +694,19 @@ class SchemaView(APIView):
...
@@ -694,11 +694,19 @@ class SchemaView(APIView):
return
Response
(
schema
)
return
Response
(
schema
)
def
get_schema_view
(
title
=
None
,
url
=
None
,
description
=
None
,
urlconf
=
None
,
renderer_classes
=
None
,
public
=
False
):
def
get_schema_view
(
title
=
None
,
url
=
None
,
description
=
None
,
urlconf
=
None
,
renderer_classes
=
None
,
public
=
False
,
generator_class
=
SchemaGenerator
,
):
"""
"""
Return a schema view.
Return a schema view.
"""
"""
generator
=
SchemaGenerator
(
title
=
title
,
url
=
url
,
description
=
description
,
urlconf
=
urlconf
)
generator
=
generator_class
(
title
=
title
,
url
=
url
,
description
=
description
,
urlconf
=
urlconf
)
return
SchemaView
.
as_view
(
return
SchemaView
.
as_view
(
renderer_classes
=
renderer_classes
,
renderer_classes
=
renderer_classes
,
schema_generator
=
generator
,
schema_generator
=
generator
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment