mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-10 11:39:25 +03:00
Merge pull request #1737 from magnetik/override-init-swagger
Allow to pass options to the constructor of SwaggerUIBundle
This commit is contained in:
commit
1279c82d43
@ -3,12 +3,11 @@ Customization
|
|||||||
|
|
||||||
The look and feel of the Swagger UI can be customized.
|
The look and feel of the Swagger UI can be customized.
|
||||||
|
|
||||||
|
|
||||||
Overwrite Twig Template
|
Overwrite Twig Template
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
If you want to customize parts of the template, you can create your own Twig template.
|
If you want to customize parts of the template, you can create your own Twig template.
|
||||||
This allows to change the title, the header, add additional or replace existing styles or scripts.
|
This allows to change Swagger UI configuration, page title, page header, add additional or replace existing styles or scripts.
|
||||||
|
|
||||||
Take a look at the Twig documentation `how to extend templates <https://twig.symfony.com/doc/2.x/tags/extends.html>`_.
|
Take a look at the Twig documentation `how to extend templates <https://twig.symfony.com/doc/2.x/tags/extends.html>`_.
|
||||||
|
|
||||||
@ -25,11 +24,27 @@ Just create a file ``templates/bundles/NelmioApiDocBundle/SwaggerUi/index.html.t
|
|||||||
#}
|
#}
|
||||||
{% extends '@!NelmioApiDoc/SwaggerUi/index.html.twig' %}
|
{% extends '@!NelmioApiDoc/SwaggerUi/index.html.twig' %}
|
||||||
|
|
||||||
|
{#
|
||||||
|
Change swagger UI configuration
|
||||||
|
All parameters are explained on Swagger UI website:
|
||||||
|
https://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/
|
||||||
|
#}
|
||||||
|
{% block swagger_initialization %}
|
||||||
|
<script type="text/javascript">
|
||||||
|
window.onload = loadSwaggerUI({
|
||||||
|
defaultModelsExpandDepth: -1,
|
||||||
|
deepLinking: true,
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{# Import your own stylesheet #}
|
||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
<link rel="stylesheet" href="{{ asset('css/custom-swagger-styles.css') }}">
|
<link rel="stylesheet" href="{{ asset('css/custom-swagger-styles.css') }}">
|
||||||
{% endblock stylesheets %}
|
{% endblock stylesheets %}
|
||||||
|
|
||||||
|
{# Import your own script #}
|
||||||
{% block javascripts %}
|
{% block javascripts %}
|
||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
<script type="text/javascript" src="{{ asset('js/custom-request-signer.js') }}"></script>
|
<script type="text/javascript" src="{{ asset('js/custom-request-signer.js') }}"></script>
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
// For the full copyright and license information, please view the LICENSE
|
// For the full copyright and license information, please view the LICENSE
|
||||||
// file that was distributed with this source code.
|
// file that was distributed with this source code.
|
||||||
|
|
||||||
window.onload = function() {
|
function loadSwaggerUI(userOptions = {}) {
|
||||||
const data = JSON.parse(document.getElementById('swagger-data').innerText);
|
const data = JSON.parse(document.getElementById('swagger-data').innerText);
|
||||||
const ui = SwaggerUIBundle({
|
const defaultOptions = {
|
||||||
spec: data.spec,
|
spec: data.spec,
|
||||||
dom_id: '#swagger-ui',
|
dom_id: '#swagger-ui',
|
||||||
validatorUrl: null,
|
validatorUrl: null,
|
||||||
@ -19,7 +19,9 @@ window.onload = function() {
|
|||||||
SwaggerUIBundle.plugins.DownloadUrl
|
SwaggerUIBundle.plugins.DownloadUrl
|
||||||
],
|
],
|
||||||
layout: 'StandaloneLayout'
|
layout: 'StandaloneLayout'
|
||||||
});
|
};
|
||||||
|
const options = Object.assign({}, defaultOptions, userOptions);
|
||||||
|
const ui = SwaggerUIBundle(options);
|
||||||
|
|
||||||
const storageKey = 'nelmio_api_auth';
|
const storageKey = 'nelmio_api_auth';
|
||||||
|
|
||||||
@ -47,4 +49,4 @@ window.onload = function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
window.ui = ui;
|
window.ui = ui;
|
||||||
};
|
}
|
||||||
|
@ -66,8 +66,11 @@ file that was distributed with this source code. #}
|
|||||||
<script src="{{ asset('bundles/nelmioapidoc/swagger-ui/swagger-ui-standalone-preset.js') }}"></script>
|
<script src="{{ asset('bundles/nelmioapidoc/swagger-ui/swagger-ui-standalone-preset.js') }}"></script>
|
||||||
{% endblock javascripts %}
|
{% endblock javascripts %}
|
||||||
|
|
||||||
{% block swagger_initialization %}
|
|
||||||
<script src="{{ asset('bundles/nelmioapidoc/init-swagger-ui.js') }}"></script>
|
<script src="{{ asset('bundles/nelmioapidoc/init-swagger-ui.js') }}"></script>
|
||||||
|
{% block swagger_initialization %}
|
||||||
|
<script type="text/javascript">
|
||||||
|
window.onload = loadSwaggerUI();
|
||||||
|
</script>
|
||||||
{% endblock swagger_initialization %}
|
{% endblock swagger_initialization %}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user