Отключение песочницы для NelmioApiDocs в Symfony 3.4

я хочу отключить режим песочницы для NelmioApiDocs на Symfony "v3.4.11" и nelmio/api-doc-bundle "v3.2.1"

Я пробовал:

# app/config/config.yml

# nelmio_api_doc
nelmio_api_doc:
    documentation:
        sandbox:
            enabled: false

После этого я очистил кеш для prod и dev. Но это не сработало, я все еще могу отправить тесты API с «Попробовать».

Может ли кто-нибудь помочь мне отключить эту функцию «Попробовать»?

С уважением, Бенджамин


person DasBen    schedule 05.06.2018    source источник
comment
Вы узнали? Я также ищу это, и мне не очень нравится идея отключить его только через css или javascript....   -  person Denis St-Michel    schedule 09.08.2018


Ответы (2)


@DasBen, у меня такие же настройки, как у вас, и я смог отключить песочницу, добавив плагин в init-swagger-ui.js.

const DisableTryItOutPlugin = function() {
    return {
        statePlugins: {
            spec: {
                wrapSelectors: {
                    allowTryItOutFor: () => () => false
                }
            }
        }
    }
};

А затем в определении const ui я добавил этот плагин следующим образом:

plugins: [
    DisableTryItOutPlugin
]

Обновился, а песочница пропала. Я бы предпочел отключить его с помощью параметра в файле config.yml под nelmio_api_doc, но, по крайней мере, сейчас он отключен. Надеюсь, это поможет.

Однако у меня не будет кредита: https://github.com/swagger-api/swagger-ui/issues/3725#issuecomment-334899276

person Denis St-Michel    schedule 09.08.2018
comment
Спустя почти год мне пришлось сделать то же самое. Раньше не работало и сейчас тоже. Теперь я скрыл кнопку пробной версии с помощью css. - person DasBen; 03.06.2019

Поскольку ответ Дени Сен-Мишеля у меня не работал, я добавил css, чтобы скрыть кнопку:

{# create in app\Resources\NelmioApiDocBundle\views\SwaggerUi\index.html.twig #}
{% extends '@!NelmioApiDoc/SwaggerUi/index.html.twig' %}

{% block stylesheets %}
{{ parent() }}
{#  Eine Config zur Deaktivierung des Buttons hat leider nicht funktioniert, daher einfach ausgeblended  #}
<style>
    .try-out {
        display: none;
    }
</style>
{% endblock stylesheets %}

Не лучший способ, но работает для меня.

person DasBen    schedule 03.06.2019