yii2-搭建Swagger:增加接口名/作者搜索,接口跨域處理方案(二)

一.  運用背景

       生成的在線接少與前端人員/app開發人員的口文檔確實減溝通成本,但是由於項目比較龐大,一個項目的接口由N多人同時開發,並且有成千上萬個接口,這時候就出現了一個問題:當後端開發人員想去查看自己的開發的接口,或者是某個接口,就變得很頭疼,只能手動去尋找。 萌生了把Swagger頂部的搜索改成更契合需求的

      ① 接口名稱查詢

      ② 開發作者查詢

二. 解決思路/方案

      去掉頂部搜索“explore”按鈕事件==>>綁定新的“搜索”按鈕事件==>>用戶點擊“搜索”前確保所有接口正常(避免二次搜索問題)==>>通過自帶的search函數搜索標題含有的字符串==>>通過操作dom對象隱藏節點

     代碼源文件我直接放Git上,寫的有點粗糙,可以優化整理下,地址(https://github.com/WatermelonMk/swaggerSearch

    或者CSDN下載資源:https://download.csdn.net/download/watermelonmk/11004522

     只要替換掉dist目錄下(別弄錯了):index.html 和 swagger-ui-standalone-preset.js

     效果圖(左原圖,右搜索後效果圖):

       

三.  跨域問題解決方案

       建議在每個模塊的控制層先不要繼承ActiveController,可以在中間先繼承CommonController(看自己命名了),然後再繼承ActiveController,然後再把這個加進去。然後在每個模塊的控制層用ArrayHelper::merge方法拼接上這個。

public function behaviors() { 
    $behaviors['corsFilter'] = [
            'class' => 'yii\filters\Cors',
            'cors' => [
                'Origin' => '*',
                'Access-Control-Request-Method' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],
                'Access-Control-Request-Headers' => ['*'],
                'Access-Control-Allow-Credentials' => true,
            ],
     ];
}

 

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