1
有沒有辦法關閉所有的Nelmio Swagger UI文檔?在生產中我希望外界看到沒有在下面的網址,但在開發中應顯示有用的文檔&沙箱正常:如何在生產中禁用Nelmio UI?
似乎在Nelmio配置中應該有一個簡單的開關,但我還沒有找到它。我的公司正在使用Symfony中的Nelmio API Doc包來開發非公共API的API。 API服務器向公衆公開,但我們不希望將其用於全球。
有沒有辦法關閉所有的Nelmio Swagger UI文檔?在生產中我希望外界看到沒有在下面的網址,但在開發中應顯示有用的文檔&沙箱正常:如何在生產中禁用Nelmio UI?
似乎在Nelmio配置中應該有一個簡單的開關,但我還沒有找到它。我的公司正在使用Symfony中的Nelmio API Doc包來開發非公共API的API。 API服務器向公衆公開,但我們不希望將其用於全球。
@ gp_sflover的評論讓我走上了正軌,但除了在AppKernel.php
的prod上禁用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
僅啓用開發環境的軟件包:'如果(in_array($ this-> getEnvironment(),['dev','test'],true)){new Nelmio \ ApiDocBundle \ NelmioApiDocBundle(); }' –