本文將按照完全真實的操作流程進行寫作!技術人員照著此文,可以直接搭建一個yii2和swagger結合的RestFul風格的API接口平臺!
第一步:本地搭建yii2項目(以basic基礎項目為準)
php composer.phar create-project yiisoft/yii2-app-basic basic -vvv
運行以上命令,用composer安裝的方式,在本地搭建一個yii2項目。(安裝composer和本地站點配置這裡就不作細述了)
比如我們的項目地址為:yii2basic.my.com
第二步:下載yii2-swagger包
php composer.phar require --prefer-dist light/yii2-swagger "~1.0.4" -vvv
第三步:準備工作
為了後面swagger的使用能按照設想順利進行,我們在這個地方先做好幾項準備工作
1、url美化。我們不希望url在訪問時,還需要輸入index.php這樣的結構,而是希望直接訪問 控制器名/方法名 這樣的結構,所以,我們需要配置:
config下面的web.php裡面的components組件:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => require(__DIR__ . '/route.php'),
],
順帶著,我們還在config目錄下新建一個route.php文件,專用用來存放路由。這個文件怎麼寫?最後給個參考!
2、輸出格式化。接口的目的就是return回信息的,我們需要配置返回信息的格式默認都是json格式。
config下面的web.php裡面的components組件:
'response' => [
'format' => 'json'
],
3、新建一個module專門用來寫API接口(當然,並不是必須要新建一個模塊,但是新建一個單獨的模塊,更清晰更好管理)
我們直接用gii來新建:
瀏覽器訪問http://yii2basic.my.com/gii
進入頁面-》選擇Module Generator-》
好,做完這三步,現在我們的準備工作基本好了!
第四步:建立swagger的入口文件和信息文件
我們在項目的controllers目錄下新建一個與默認的SiteController.php同級的SwaggerControll.php文件
swagger還需要一個配置文件,才能保證在讀取信息時,不出錯。因為,上圖中,我們只讓swagger到v1下面的controllers下面去掃描。所以,我們就把swagger的配置文件放在v1/controllers下面,取名swagger.php
現在,你訪問http://yii2basic.my.com/swagger 這個連結,就能看到swagger的接口頁面了。只是,我們現在還沒有寫接口。好,那我們現在就開始寫一個接口來看看。
第五步、開始寫接口並且為每個接口做路由配置
還是上面說的,我們只配置了swagger掃描api/controllers這個目錄下的文件。所以,我們還是把接口文件寫在api/controllers目錄下。
就舉例叫UserController.php
現在,我們接口也寫好了,按道理是可以訪問的了,但是我們還需要配置下路由,以便更加健壯和兼容性好!還記得,我上面說的那個順帶在config目錄下建立的route.php文件吧。現在開始寫它!
好,現在,我們可以再Swagger的界面,直接操作接口了!