在 Symfony 3.4 上为 NelmioApiDocs 禁用沙盒

Disabling Sandbox for NelmioApiDocs on Symfony 3.4

我想在 Symfony "v3.4.11" 和 nelmio/api-doc-bundle "v3.2.1"

上禁用 NelmioApiDocs 的沙盒模式

我试过:

# app/config/config.yml

# nelmio_api_doc
nelmio_api_doc:
    documentation:
        sandbox:
            enabled: false

之后我清除了生产和开发的缓存。 但它没有用,我仍然可以用 "Try it out".

发送 api 测试

有人可以帮我禁用此 "Try it out" 功能吗?

亲切的问候, 本杰明

@DasBen,我的设置和你一样,我可以通过向 init-swagger-ui.js

添加一个插件来禁用沙箱
const DisableTryItOutPlugin = function() {
    return {
        statePlugins: {
            spec: {
                wrapSelectors: {
                    allowTryItOutFor: () => () => false
                }
            }
        }
    }
};

然后在 const ui 定义中我添加了这样的插件:

plugins: [
    DisableTryItOutPlugin
]

刷新了,沙盒不见了。我更愿意通过 nelmio_api_doc 下的 config.yml 文件中的选项禁用它,但至少它现在被禁用了。希望这有帮助。

不过我没有信用:https://github.com/swagger-api/swagger-ui/issues/3725#issuecomment-334899276

由于 Denis St-Michel 的回答对我不起作用,我添加了 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 %}

不是最好的方法,但对我有用。