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');
        }
    }
}

 

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