一. 安裝擴展組件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');
}
}
}