yii2-搭建Swagger:快速搭建(一)

一.  安装扩展组件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');
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章