在Symfony 3.4上禁用NelmioApiDocs的Sandbox

时间:2018-06-05 13:16:39

标签: php symfony symfony-3.4 nelmioapidocbundle

我想在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

之后我清除了prod和dev的缓存。 但它没有用,我仍然可以通过“试一试”发送api测试。

有人可以帮我禁用“试用”功能吗?

亲切的问候, 本杰明

2 个答案:

答案 0 :(得分:0)

@DasBen,我的设置与您相同,通过向init-swagger-ui.js中添加插件,我能够禁用沙箱

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

然后在const ui定义中,我添加了这个插件,如下所示:

plugins: [
    DisableTryItOutPlugin
]

刷新后,沙箱消失了。我本来希望通过config.ymlnelmio_api_doc文件中的选项禁用它,但至少现在已禁用它。希望这会有所帮助。

尽管我{@ {3}}

答案 1 :(得分:0)

由于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 %}

不是最好的方法,但是为我工作。