2016-11-08 82 views
1

有沒有辦法關閉所有的Nelmio Swagger UI文檔?在生產中我希望外界看到沒有在下面的網址,但在開發中應顯示有用的文檔&沙箱正常:如何在生產中禁用Nelmio UI?

似乎在Nelmio配置中應該有一個簡單的開關,但我還沒有找到它。我的公司正在使用Symfony中的Nelmio API Doc包來開發非公共API的API。 API服務器向公衆公開,但我們不希望將其用於全球。

+2

僅啓用開發環境的軟件包:'如果(in_array($ this-> getEnvironment(),['dev','test'],true)){new Nelmio \ ApiDocBundle \ NelmioApiDocBundle(); }' –

回答

1

@ 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 
相關問題