Как искользовать swagger в yii2?

Для использования Swagger в Yii2 вам понадобится установить пакет yii2-swagger. Ниже я предоставлю подробную инструкцию по использованию Swagger в Yii2.

Шаг 1: Установка пакета yii2-swagger
Для установки пакета yii2-swagger вам необходимо использовать Composer. В командной строке перейдите в директорию вашего проекта и введите следующую команду:

composer require --dev zircote/swagger-php

Шаг 2: Настройка конфигурации приложения
Добавьте следующий код в ваш файл config/web.php или config/main.php, в зависимости от того, как вы настраиваете приложение:

'modules' => [
    'swagger' => [
        'class' => 'yii2modswaggerModule',
        'jsonPath' => '@webroot/api/swagger.json', // путь к месту сохранения файла JSON
        'scanDir' => [
            '@api/modules/v1/controllers', // путь к контроллерам, которые нужно сканировать
        ],
    ],
],

Шаг 3: Генерация файла JSON с помощью Swagger
Создайте контроллер, который будет использоваться для генерации файла JSON с помощью Swagger. Ниже приведен пример контроллера:

namespace apimodulesv1controllers;

use yiirestController;

class SwaggerController extends Controller
{
    public function actions()
    {
        return [
            'index' => [
                'class' => 'yii2modswaggerSwaggerUIRendererAction',
                'apiJsonUrl' => ['swagger/api-json'], // URL для получения файла JSON с описанием API
            ],
            'api-json' => [
                'class' => 'yii2modswaggerOpenAPIJsonAction',
                'scanDir' => [
                    '@api/modules/v1/controllers', // путь к контроллерам, которые нужно сканировать
                ],
            ],
        ];
    }
}

Затем добавьте маршрут для контроллера в вашем файле конфигурации маршрутизации (config/web.php или config/main.php):

'routes' => [
    // ...
    [
        'class' => 'yiirestUrlRule',
        'controller' => 'v1/your-controller', // ваш контроллер
        'prefix' => 'api', // префикс для маршрутов API
    ],
    [
        // маршрут для генерации файла JSON Swagger
        'class' => 'yiirestUrlRule',
        'controller' => 'v1/swagger',
        'extraPatterns' => [
            'GET,OPTIONS index' => 'index',
            'GET,OPTIONS api-json' => 'api-json',
        ],
        'prefix' => 'swagger', // префикс для маршрутов Swagger
    ],
    // ...
],

Шаг 4: Отображение интерфейса Swagger
Теперь, когда у вас есть контроллер для генерации файла JSON с описанием API, и настроены маршруты, вы можете открыть интерфейс Swagger по адресу http://your-domain/swagger/index.

На этой странице вы сможете просмотреть и протестировать API вашего приложения, а также скачать файл JSON с описанием API для дальнейшего использования.

Удачи в использовании Swagger в вашем приложении Yii2!