OpenAPI 3 - применить безопасность ко всем сервисам - PullRequest
0 голосов
/ 28 апреля 2020

Я использую Laravel и Swagger + OpenAPI 3. Я определил securitySchema в своем главном контроллере APIC:

/**
 * @OA\Info(
 *      version="1.0.0",
 *      title="My API system",
 * )
 * @OA\SecurityScheme(
 *   securityScheme="bearer",
 *   type="apiKey",
 *   in="header",
 *   name="bearer",
 * )
 */
class ApiController extends Controller
{
    // ...
}

Затем, это работает, если я добавлю безопасность в свой метод:

/**
 * @OA\Get(
 *     path="/pets",
 *     @OA\Response(
 *         response=200,
 *      ),
 *     security={
 *         {"bearer": {}}
 *     }
 *    )
 */
public function index()
{
    return [];
}

Но я хочу применить это ко всем моим методам и контроллерам. Я пытался поставить:

 *     security={
 *         {"bearer": {}}
 *     }

В других местах, но безуспешно. Является ли это возможным ? По документации это представляется возможным: https://swagger.io/docs/specification/authentication/bearer-authentication/, но я не знаю, как перевести Yml в аннотации ...

Пример документации:

# 2) Apply the security globally to all operations
security:
  - bearerAuth: []         # use the same name as above
...