我正在我的项目上设置 NelmioApiDocBundle v4。
该项目基本上是Rest API,所有路由都以前缀/api开头。 身份验证是通过不记名令牌进行的。 还有一种方法可以撤销没有控制器方法的令牌。 它仅在 config/security.yaml 中定义:
firewalls:
api:
pattern: ^/api(?!/doc$)
lazy: true
provider: jwt
stateless: true
jwt: ~
logout:
path: /api/revoke # <- route that I want to show up on API doc
packages/nelmio_api_doc.yaml:
nelmio_api_doc:
# ...
areas: # to filter documented areas
path_patterns:
- ^/api(?!/doc$) # Accepts routes under /api except /api/doc
使用当前配置,所有具有匹配控制器的 /api 路由都列在 API 文档中,除了
/api/revoke
。
当我运行
bin/console debug:router
时,它会列出 api/revoke
路线:
当我发送请求时,路线工作正常。
我不明白为什么这个捆绑包没有列出该端点。
在另一个问题中找到了解决方案。
我不知道是否有更好的解决方案,但我发现的解决方案是在配置中手动定义该路由。
# /config/nelmio_api_doc.yaml
nelmio_api_doc:
documentation:
# ...
paths:
/api/revoke:
get:
summary: Revoke JWT Token
responses:
'200':
description: HTTP 200 upon successful token revocation