有没有办法关闭所有Nelmio Swagger UI文档?在制作中,我希望外部世界在以下URL中看不到任何内容,但在开发中,他们应该像往常一样显示有用的文档和沙箱:
似乎在Nelmio配置中应该有一个简单的开关,但我还没有找到它。我的公司正在使用Symfony中的Nelmio API Doc软件包为非公共API开发API。 API服务器向公众公开,但我们对将其使用发布到全世界并不感兴趣。
@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
现在使用symfony4和flex,您可以正常安装捆绑包
composer require nelmio/api-doc-bundle
(所以它不会被设置为你的qazxsw poi中的qazxsw poi依赖)
现在,您将require-dev
中的设置更改为:
composer.json
所以你不会得到错误(例如来自注释),但它不会从project/config/bundles.php
加载