我正在尝试Swagger-php
在我正在处理的应用程序中创建 API 文档。我想使用 JWT 保护它,所以在我的 ControllerBase 中放置了一个 SecurityScheme:
/**
* @SWG\SecurityScheme(
* securityDefinition="Bearer",
* bearerFormat="JWT",
* type="apiKey",
* name="Authorization",
* in="header"
* )
*/
然后在我的控制器中我想使用它
/**
* @SWG\Get(
* path="/test",
* @SWG\Response(
* response="200",
* description="Returns test data"
* ),
* security={{"Bearer":{}}}
* )
*/
它在我的 Swagger UI 上正确加载,但是当我尝试执行请求时,我收到错误响应:
语法错误,意外标记 },靠近 '}}
看起来 Swagger 的正确注释对于 PHP 解释器是不正确的。我可以将其更改为
security={{"Bearer":{''}}}
然后请求正在工作,但是当我重新加载 Swagger UI 时,请求不会出现在那里。
任何人都可以帮助我吗?
更新:我错误地认为这是 PHP 解释器的问题。使用 Phalcon Annotations 时出现问题。这是服务器返回的整个错误。
第 21 行 /var/www/api/api/app/modules/user/controllers/UserController.php 中的语法错误,意外标记 },靠近 '}} )'
0【内部功能】: Phalcon\Annotations\Reader->parse('Api\Modules\Use...') 1【内部函数】:Phalcon\Annotations\Adapter->get('Api\Modules\Use...') 2 /var/www/api/api/app/library/ApiManager/ApiAnnotation.php(54): Phalcon\Annotations\Adapter->getMethod('Api\Modules\Use...', 'getAllUsersActi...') 3 /var/www/api/api/app/library/ApiManager/ApiAnnotation.php(41): Api\Library\ApiManager\ApiAnnotation->getFromActiveAction() 4 /var/www/api/api/app/library/AuthGuard/AuthGuard.php(23): Api\Library\ApiManager\ApiAnnotation->__construct() 5 /var/www/api/api/app/controllers/ControllerBase.php(37): Api\Library\AuthGuard\AuthGuard->__construct() 6【内部函数】:Api\Controllers\ControllerBase->initialize() 7【内部函数】:Phalcon\Dispatcher->dispatch() 8 /var/www/api/api/public/index.php(54): Phalcon\Mvc\Application->handle() 9 {主要}