Я пытаюсь использовать Swagger-php для создания документации по API в приложении, над которым я работаю. Я хочу защитить его с помощью JWT, поэтому поместил SecurityScheme в мою ControllerBase:
/**
* @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, но когда я пытаюсь выполнить запрос, я получаю в ответ ошибку:
Syntax error, unexpected token }, near to '}}
Похоже, что правильные аннотации для Swagger неверны для PHP Interpreter. Я могу изменить это на
security = {{"Bearer":{''}}}
Затем запрос работает, но когда я перезагружаю пользовательский интерфейс Swagger, запрос там не отображается.
Кто-нибудь может мне помочь?
ОБНОВЛЕНИЕ: я ошибался, думая, что это проблема PHP Interpreter. Проблема возникает при использовании аннотаций Phalcon. Вот вся ошибка, возвращаемая сервером.
Syntax error, unexpected token }, near to '}} ) ' in /var/www/api/api/app/modules/user/controllers/UserController.php on line 21
0 [internal function]: Phalcon\Annotations\Reader->parse('Api\Modules\Use...') 1 [internal function]: 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 [internal function]: Api\Controllers\ControllerBase->initialize() 7 [internal function]: Phalcon\Dispatcher->dispatch() 8 /var/www/api/api/public/index.php(54): Phalcon\Mvc\Application->handle() 9 {main}
"В ответ я получил ошибку: синтаксическая ошибка, непредвиденный токен}, рядом с '}}" - эта ошибка возвращается вашим сервером?
@Helen Я обновил вопрос. Да, это все возвращается моим сервером.
Что находится в строке 21 в UserController.php?
@Helen `* security = {{" Bearer ": {}}}` Похоже, это то, с чем Phalcon Annotations не может справиться

Вам необходимо удалить
bearerFormat = "JWT",, он используется только в OpenAPI 3.0, но не в 2.0.