#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 на реальный, и все готово.