File: //proc/1122/cwd/api/controllers/SiteController.php
<?php declare(strict_types=1);
namespace api\controllers;
use Yii;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\helpers\Url;
class SiteController extends Controller
{
/**
* @inheritdoc
*/
public function actions(): array
{
return [
'docs' => [
'class' => \yii2mod\swagger\SwaggerUIRenderer::class,
'restUrl' => Url::to(['site/json-schema']),
],
'json-schema' => [
'class' => \yii2mod\swagger\OpenAPIRenderer::class,
// Тhe list of directories that contains the swagger annotations.
'scanDir' => [
Yii::getAlias('@api/modules/v1/controllers'),
Yii::getAlias('@api/modules/v1/models'),
],
],
];
}
public function actionIndex()
{
return $this->redirect(['site/docs']);
}
public function actionArticles()
{
return $this->redirect(['site/docs']);
}
public function actionError()
{
if (($exception = Yii::$app->getErrorHandler()->exception) === null) {
$exception = new NotFoundHttpException(Yii::t('yii', 'Page not found.'));
}
if ($exception instanceof \HttpException) {
Yii::$app->response->setStatusCode($exception->getCode());
} else {
Yii::$app->response->setStatusCode(500);
}
return $this->asJson(['error' => $exception->getMessage(), 'code' => $exception->getCode()]);
}
}