Yii2.0 RESTful API的版本控制的介紹(程式碼範例)
這篇文章帶給大家的內容是關於Yii2.0 RESTful API的版本控制的介紹(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
之前我寫過兩篇關於 Yii2.0 RESTful API 如何搭建,以及 認證 等處理,但是沒有涉及到版本管理,今天就來談談版本管理如何實現。
索性就從頭開始一步一步搭建吧,但是關於一些概念以及使用本篇就不一一解釋了,可以參考第一篇Yii2.0 RESTful API 基礎配置教程進行配置
安裝Yii2.0
透過Composer 安裝
這是安裝Yii2.0的首選方法。如果你還沒有安裝 Composer,你可以按照這裡的說明進行安裝。
安裝完Composer,運行下面的命令來安裝Composer Asset 插件:
composer global require "fxp/composer-asset-plugin:^1.2.0"
安裝高級的應用程式模板,運行下面的命令:
composer create-project yiisoft/yii2-app-advanced yii-api 2.0.14
#拷貝backend目錄,命名為api
開啟api\config\main.php 修改id,controllerNamespace:
return [ 'id' => 'app-api', 'basePath' => dirname(__DIR__), 'controllerNamespace' => 'api\controllers', ]
初始化進階範本
#不妨在初始化前先看這篇文章
cd advanced php init
開啟common\config\main.php開啟url路由美化規則
'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ], ],
開啟common\config\bootstrap.php新增以下別名
Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');
ok,以上工作準備完畢,接下來進入正題,
關於版本更多介紹可以參考權威指南,這裡不過多解釋(PS:主要我也不會......)
我的理解:
Yii2 的版本你可以理解為不同的模組,每個版本就是一個新的模組,例如常見的v1,v2等。
模組的建構
關於如何產生模組,我們可以使用GII來進行產生.
設定GII
打開api/config/main-local.php 檔案修改如下:
if (!YII_ENV_TEST) { // configuration adjustments for 'dev' environment $config['bootstrap'][] = 'debug'; $config['modules']['debug'] = [ 'class' => 'yii\debug\Module', ]; $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Module', 'allowedIPs' => ['127.0.0.1', '*'] ]; }
我這裡因為使用的是Homestead ,預設是不允許存取GII 的,所以得加上'allowedIPs' => ; ['127.0.0.1', '*'] ,否則會出現Forbidden (#403), 你可以根據自己的需要來進行配置,或者不配置
生成Modules
瀏覽器中輸入http://your host/gii ,可以看到Module Generator ,點選Start
Modules Class 中輸入:api\modules\v1\Module
Module ID 中輸入v1, (一般會自動輸入)
點選Preview
#最後點選Generate 進行產生
設定模組
開啟api/config/main.php 文件,修改modules
'modules' => [ 'v1'=>[ 'class'=>'api\modules\v1\Module', ], ],
接著修改urlManager
'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'v1/default', 'extraPatterns'=>[ 'GET index'=>'index', ], ], ], ],
基於以上,Yii2.0 RESTFul API 就實現了版本管理,我們可以透過以下地址進行存取:
http://localhost/v1/defaults
多說一點,我上方的地址是已經映射到api/web目錄,請根據自己的實際情況進行設定
開啟剛產生的modules 檔案目錄,可以看到裡面存在一個v1 的目錄,可以看到該目錄還有一個controllers,以及一個views 目錄
,我們剛才造訪的defaults 其實就是這兩個文件,和傳統的web專案一樣控制器渲染視圖
好了,你可能知道了,我們以後的控制器程式碼就放到modules/v1/controllers 裡了
剛才只是預設GII為我們產生的程式碼,因為我們是API,所以views 目錄,我們通常用不到。
新建一個rest 的控制器
在 modules\v1\controllers 下新建UserController
<?php namespace api\modules\v1\controllers; use yii\rest\Controller; /** * User controller for the `v1` module */ class UserController extends Controller { /** * @return string */ public function actionIndex() { return 'this is v1/user'; } }
修改api/config/main.php 中的urlManager
'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'v1/default', 'extraPatterns'=>[ 'GET index'=>'index', ], ], ['class' => 'yii\rest\UrlRule', 'controller' => 'v1/user', 'extraPatterns'=>[ 'GET index'=>'index', ], ], ], ],
試著訪問下
http://localhost/v1/users/index
ok,以上就是Yii2.0 版本管理的實作方式
格式化回應
##修改api/config/main. php 在components 陣列中加入response'response' => [ 'class' => 'yii\web\Response', 'on beforeSend' => function ($event) { $response = $event->sender; $response->data = [ 'success' => $response->isSuccessful, 'code' => $response->getStatusCode(), 'message' => $response->statusText, 'data' => $response->data, ]; $response->statusCode = 200; }, ],
以上是Yii2.0 RESTful API的版本控制的介紹(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。
