Как настроить swagger с помощью laravel passport

#laravel #swagger #laravel-passport

#laravel #swagger #laravel-passport

Вопрос:

Я создаю документацию rest api, и инструмент, который я использую, — swagger. Для этого я настроил пакет l5-swagger. к сожалению, я не получаю опцию авторизации в пользовательском интерфейсе. мой l5-swagger.php файл

 'passport' => [ 
                'type' => 'oauth2',
                'description' => 'Laravel passport oauth2 security.',
                'in' => 'header',
                'scheme' => 'https',
                'flows' => [
                    "password" => [
                      "authorizationUrl" => config('app.url') . '/oauth/authorize',
                      "tokenUrl" => config('app.url') . '/oauth/token',
                      "refreshUrl" => config('app.url') . 'oauth/token/refresh',
                      "scopes" => []
                           ],
                      ],
             ],
 

Мой контроллер выглядит следующим образом

 /**
 * @OAGET(
 ** path="/api/product/{product_id}",
 *   tags={"Product"},
 *   security={
 *    {
 *     "passport": {}},
 *    },
 *   summary="Product Detail",
 *   operationId="productdetails",
 *   @OAParameter(
 *      name="product_id",
 *      in="path",
 *      required=true,
 *      @OASchema(
 *           type="integer"
 *      )
 *   ),
 *   @OAResponse(
 *      response=200,
 *       description="Success",
 *      @OAMediaType(
 *          mediaType="application/json",
 *      )
 *   ),
 *)
  public function get_product($product_id){
 
  }
 

я не уверен, чего мне не хватает, что вызывает исчезновение кнопки авторизации блокировки

эталонное изображение

Ответ №1:

Вместо того, чтобы писать собственную безопасность, есть ‘securitySchemes’ => [] найти массив паспортов, просто раскомментируйте это и замените фиктивный URL-адрес oauth на реальный, и все готово.