Update ReDoc settings

openapi3
Cristi Vîjdea 2018-09-10 01:39:43 +03:00
parent 10abf46597
commit 4bac38e67b
5 changed files with 40 additions and 16 deletions

View File

@ -10,6 +10,7 @@ Changelog
*Release date: Sep 10, 2018* *Release date: Sep 10, 2018*
- **ADDED:** added the ``SPEC_URL`` setting for controlling the download link in ``swagger-ui`` and ``ReDoc`` - **ADDED:** added the ``SPEC_URL`` setting for controlling the download link in ``swagger-ui`` and ``ReDoc``
- **ADDED:** updated ``ReDoc`` settings (added ``NATIVE_SCROLLBARS`` and ``REQUIRED_PROPS_FIRST``)
- **IMPROVED:** updated ``swagger-ui`` to version 3.18.2 - **IMPROVED:** updated ``swagger-ui`` to version 3.18.2
- **IMPROVED:** updated ``ReDoc`` to version 2.0.0-alpha.37 - **IMPROVED:** updated ``ReDoc`` to version 2.0.0-alpha.37
- **FIXED:** stopped generating invalid OpenAPI by improper placement of ``readOnly`` Schemas - **FIXED:** stopped generating invalid OpenAPI by improper placement of ``readOnly`` Schemas

View File

@ -27,7 +27,7 @@ Example:
} }
REDOC_SETTINGS = { REDOC_SETTINGS = {
'LAZY_RENDERING': True, 'LAZY_RENDERING': False,
... ...
} }
@ -356,26 +356,40 @@ URL which serves the UI; see :ref:`note on URL settings <url-settings>` above.
LAZY_RENDERING LAZY_RENDERING
-------------- --------------
**Default**: :python:`True` |br| **NOTE:** this feature might be removed in future versions of ReDoc (see https://github.com/Rebilly/ReDoc/issues/475)
*Maps to attribute*: ``lazy-rendering``
**Default**: :python:`False` |br|
*Maps to attribute*: ``lazyRendering``
HIDE_HOSTNAME HIDE_HOSTNAME
------------- -------------
**Default**: :python:`False` |br| **Default**: :python:`False` |br|
*Maps to attribute*: ``hide-hostname`` *Maps to attribute*: ``hideHostname``
EXPAND_RESPONSES EXPAND_RESPONSES
---------------- ----------------
**Default**: :python:`'all'` |br| **Default**: :python:`'all'` |br|
*Maps to attribute*: ``expand-responses`` *Maps to attribute*: ``expandResponses``
PATH_IN_MIDDLE PATH_IN_MIDDLE
-------------- --------------
**Default**: :python:`False` |br| **Default**: :python:`False` |br|
*Maps to attribute*: ``path-in-middle-panel`` *Maps to attribute*: ``pathInMiddlePanel``
NATIVE_SCROLLBARS
-----------------
**Default**: :python:`False` |br|
*Maps to attribute*: ``nativeScrollbars``
REQUIRED_PROPS_FIRST
--------------------
**Default**: :python:`False` |br|
*Maps to attribute*: ``requiredPropsFirst``
.. _FORCE_SCRIPT_NAME: https://docs.djangoproject.com/en/2.0/ref/settings/#force-script-name .. _FORCE_SCRIPT_NAME: https://docs.djangoproject.com/en/2.0/ref/settings/#force-script-name

View File

@ -67,10 +67,12 @@ SWAGGER_DEFAULTS = {
REDOC_DEFAULTS = { REDOC_DEFAULTS = {
'SPEC_URL': None, 'SPEC_URL': None,
'LAZY_RENDERING': True, 'LAZY_RENDERING': False,
'HIDE_HOSTNAME': False, 'HIDE_HOSTNAME': False,
'EXPAND_RESPONSES': 'all', 'EXPAND_RESPONSES': 'all',
'PATH_IN_MIDDLE': False, 'PATH_IN_MIDDLE': False,
'NATIVE_SCROLLBARS': False,
'REQUIRED_PROPS_FIRST': False,
} }
IMPORT_STRINGS = [ IMPORT_STRINGS = [

View File

@ -1,3 +1,5 @@
import warnings
import six import six
from django.shortcuts import render, resolve_url from django.shortcuts import render, resolve_url
@ -157,7 +159,9 @@ class ReDocRenderer(_UIRenderer):
'lazyRendering': redoc_settings.LAZY_RENDERING, 'lazyRendering': redoc_settings.LAZY_RENDERING,
'hideHostname': redoc_settings.HIDE_HOSTNAME, 'hideHostname': redoc_settings.HIDE_HOSTNAME,
'expandResponses': redoc_settings.EXPAND_RESPONSES, 'expandResponses': redoc_settings.EXPAND_RESPONSES,
'pathInMiddle': redoc_settings.PATH_IN_MIDDLE, 'pathInMiddlePanel': redoc_settings.PATH_IN_MIDDLE,
'nativeScrollbars': redoc_settings.NATIVE_SCROLLBARS,
'requiredPropsFirst': redoc_settings.REQUIRED_PROPS_FIRST,
} }
return filter_none(data) return filter_none(data)

View File

@ -7,19 +7,22 @@ var redoc = document.createElement("redoc");
var redocSettings = JSON.parse(document.getElementById('redoc-settings').innerHTML); var redocSettings = JSON.parse(document.getElementById('redoc-settings').innerHTML);
if (redocSettings.url) { if (redocSettings.url) {
specURL = redocSettings.url; specURL = redocSettings.url;
delete redocSettings.url;
} }
redoc.setAttribute("spec-url", specURL); redoc.setAttribute("spec-url", specURL);
if (redocSettings.lazyRendering) { function camelToKebab(str) {
redoc.setAttribute("lazy-rendering", ''); return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
} }
if (redocSettings.pathInMiddle) {
redoc.setAttribute("path-in-middle-panel", ''); for (var p in redocSettings) {
if (redocSettings.hasOwnProperty(p)) {
if (redocSettings[p] !== null && redocSettings[p] !== undefined && redocSettings[p] !== false) {
redoc.setAttribute(camelToKebab(p), redocSettings[p].toString());
}
}
} }
if (redocSettings.hideHostname) {
redoc.setAttribute("hide-hostname", '');
}
redoc.setAttribute("expand-responses", redocSettings.expandResponses);
document.body.appendChild(redoc); document.body.appendChild(redoc);
function hideEmptyVersion() { function hideEmptyVersion() {