Как скрыть Api-plaform Docs от Nelmio Docs - PullRequest
0 голосов
/ 19 марта 2019

Я надеюсь, что кто-нибудь поможет мне использовать Api-platorm с Nelmio.

Я использую Api-plaform и Nelmio.Мне нужно скрыть документы Api-платформы от Nelmio.

Мне нужно иметь 3 маршрута:

/internal -> API-Platform Docs
/external -> NELMIO-Docs
/admin -> NELMIO-Docs

Мой конфиг Nelmio:

# config/packages/nelmio_api_doc.yaml
nelmio_api_doc:
    documentation:
        info:
            title: ...
            description: ...
            version: 0.2.0
    areas: # to filter documented areas
        default:
            path_patterns: [ ^/external ]
        external:
            path_patterns: [ ^/external ]
        admin:
            path_patterns: [ ^/admin ]

Мой конфигНельмио (маршруты):

# config/routes/nelmio_api_doc.yaml
app.swagger:
    path: /{area}/json
    methods: GET
    defaults: { _controller: nelmio_api_doc.controller.swagger, area: default }

app.swagger_ui:
    path: /{area}
    methods: GET
    defaults: { _controller: nelmio_api_doc.controller.swagger_ui, area: default }

Мой конфиг API-платформы:

# config/routes/api_platform.yaml
api_platform:
    resource: .
    type: api_platform
    prefix: /internal/

Но если я пойду на http://localhost/external или http://localhost/admin Iвсегда видеть не только нужные маршруты, но и маршруты из API-платформы:

enter image description here

1 Ответ

0 голосов
/ 25 марта 2019

В файле yaml конфигурации nelmio используйте регулярное выражение, чтобы исключить документы. Например, для исключения /external/doc вы должны:

 external:
            path_patterns: [ ^/external(?!/doc$) ]
...