如何在生产中禁用Nelmio UI?

问题描述 投票:2回答:2

有没有办法关闭所有Nelmio Swagger UI文档?在制作中,我希望外部世界在以下URL中看不到任何内容,但在开发中,他们应该像往常一样显示有用的文档和沙箱:

似乎在Nelmio配置中应该有一个简单的开关,但我还没有找到它。我的公司正在使用Symfony中的Nelmio API Doc软件包为非公共API开发API。 API服务器向公众公开,但我们对将其使用发布到全世界并不感兴趣。

symfony swagger nelmioapidocbundle
2个回答
2
投票

@gp_sflover的评论让我走上了正轨,但还有更多的内容,而不仅仅是在AppKernel.php上禁用NelmioApiDocBundle。引用Nelmio的配置和路由会产生错误,直到您将它们移动到特定于dev的文件中。 app/AppKernel.php的以下变化是第一步:

public function registerBundles()
{
    $bundles = [
        new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
        ...
        // new Nelmio\ApiDocBundle\NelmioApiDocBundle(), // <-- REMOVED FROM HERE
        new Nelmio\CorsBundle\NelmioCorsBundle(),
        new AppBundle\AppBundle(),
    ];

    if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
        $bundles[] = new Nelmio\ApiDocBundle\NelmioApiDocBundle(); // <-- ADDED HERE
        $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
        ...

为了消除配置错误,我不得不将以下内容从app/config/config.yml移到config_dev.yml

# nelmio Configuration
nelmio_api_doc:
    sandbox:
        enabled: true
    name: 'DLAP API Bridge'
    swagger:
        ...
    cache:
        enabled: false

同样,以下的东西来自app/config/routing.yml并转移到routing_dev.yml

NelmioApiDocBundle:
    resource: "@NelmioApiDocBundle/Resources/config/routing.yml"
    prefix:   /api/doc

nelmio_api_swagger:
    resource: "@NelmioApiDocBundle/Resources/config/swagger_routing.yml"
    resource: null
    prefix: /api-docs

0
投票

现在使用symfony4和flex,您可以正常安装捆绑包

composer require nelmio/api-doc-bundle

(所以它不会被设置为你的qazxsw poi中的qazxsw poi依赖)

现在,您将require-dev中的设置更改为:

composer.json

所以你不会得到错误(例如来自注释),但它不会从project/config/bundles.php加载

© www.soinside.com 2019 - 2024. All rights reserved.