1

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\ライブラリ\AuthGuard\AuthGuard->__construct()
6 [内部関数]: Api\Controllers\ControllerBase->initialize()
7 [内部関数]: Phalcon\Dispatcher->dispatch()
8 /var/www/api/api/public/index.php(54): Phalcon\Mvc\Application->ハンドル()
9 {メイン}

4

0 に答える 0