一. 安装扩展组件zircote/swagger-php
项目根目录底下运行:composer require zircote/swagger-php
二. 从GitHub上下载swagger-ui最新版本
① GitHub地址:https://github.com/swagger-api/swagger-ui
② 将下载的文件重名为swagger-ui,放在/api/web目录下,如图所示:
③ 在api/web下新建文件夹swageer-docs(这个文件夹可以自己命名,没有强制要求,用来放json文件的),我这个swagger.json文件是自己建的,大家可以根据自己的实际运用命名
三. 配置api/web/swagger-ui/dist/index.html文件(其他保持不变)
四. 为了避免每次修改api注释之后都要手动去生成新的json文件,我们写了个控制,先生成新的json文件,再跳转到index.html,详细代码如下,大家可参考。
<?php
namespace api\controllers;
use Yii;
use yii\web\Controller;
/**
* Site controller
*/
class SiteController extends Controller
{
/**
* Displays homepage.
* @return string
*/
public function actionIndex()
{
$projectRoot = Yii::getAlias('@api');
$swagger = \OpenApi\scan($projectRoot);
$swagger = json_encode($swagger) ;
$json_file = $projectRoot . '/web/swagger-docs/swagger.json';
$is_write = file_put_contents($json_file, $swagger);
if ($is_write == true) {
$this->redirect('/swagger-ui/dist/index.html');
}
}
}