Site icon Alvin Chen Club

L5 Swagger 整合API文件到Laravel專案中

L5 Swagger 整合API文件到Laravel專案中

L5 swagger 讓我們可以直接在laravel 原始碼中填寫所需要的文件生成指令,透過php artisan 直接產生api使用文件
並且帶有swagger-ui介面,可以直接查閱也可以在上面測試api
沒用過swagger? 可以直接到官網試試看精美的介面
https://swagger.io/tools/swagger-ui/
先說
L5 swagger 8.0版本以後已經不能將annotation獨立一個檔案寫了,需要跟controller寫在一起
請見作者回覆 : https://github.com/DarkaOnLine/L5-Swagger/issues/443

參考資料

https://hosomikai.medium.com/laravel-%E4%BD%BF%E7%94%A8swagger-%E7%94%A2%E5%87%BAapi%E6%96%87%E4%BB%B6-2f2a934c3b25
https://dtl625.medium.com/laravel-%E4%BD%BF%E7%94%A8l5-swagger%E8%A3%BD%E4%BD%9Capi%E6%96%87%E4%BB%B6-%E5%AE%89%E8%A3%9D-%E8%A8%AD%E5%AE%9A%E7%AF%87-241d751e079
https://jamie-life-coding.site/2022/09/implement-l5-swagger-to-laravel/

安裝:

laravel 5.5以後的版本只需要
舊版本請參閱參考資料連結
publish指令將設定檔複製到config資料夾中,可以依照需求來修改

撰寫Annotation

annotation中描述的是每一隻API所要處理的事情、傳入的參數、回覆的內容的等等資訊
首先,打開 app/Http/Controller.php
在class Controller extend BaseController 上方加入
到這邊為止我們已經處理好swagger所需要的基本元素,透過以下指令就可以自動產生文件
此時透過PROJECT_URL/api/documentation 就可以查看到swagger-ui產出的文件,大概像這樣子
當然,查看文件的路徑也可以在config/l5-swagger.php中的decumentatiopns.routes.api 去修改
接著開始是重點
針對每一支API請在每個class function中填入以下所需要的描述資訊

全部的API function寫完之後再重新產生一次文件就可以了