成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Yii2.0 RESTful API 之版本控制

_ang / 2536人閱讀

摘要:之版本控制之前我寫過兩篇關(guān)于如何搭建,以及認證等處理,但是沒有涉及到版本管理,今天就來談談版本管理如何實現(xiàn)。如果你還沒有安裝,你可以按照這里的說明進行安裝。

Yii2.0 RESTful API 之版本控制

之前我寫過兩篇關(guān)于 Yii2.0 RESTful API 如何搭建,以及 認證 等處理,但是沒有涉及到版本管理,今天就來談談版本管理如何實現(xiàn)。

索性就從頭開始一步一步搭建吧,但是關(guān)于一些概念以及使用本篇就不一一解釋了,可以參考 第一篇 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

打開apiconfigmain.php 修改id,controllerNamespace

return [
    "id" => "app-api",
    "basePath" => dirname(__DIR__),
    "controllerNamespace" => "apicontrollers",
]
初始化高級模板

在初始化之前不妨先看下這篇文章

cd advanced
php init

打開commonconfigmain.php開啟url路由美化規(guī)則

"urlManager" => [
    "enablePrettyUrl" => true,
    "showScriptName" => false,
    "rules" => [
    ],
],

打開commonconfigootstrap.php添加以下別名

Yii::setAlias("@api", dirname(dirname(__DIR__)) . "/api");

ok,以上工作準備完畢,接下來進入正題,
關(guān)于版本更多介紹可以參考 權(quán)威指南 ,這里不過多解釋(PS:主要我也不會......)

我的理解:
Yii2 的版本你可以理解為不同的模塊,每一個版本就是一個新的模塊,比如常見的v1,v2等。

模塊的搭建

關(guān)于如何生成模塊,我們可以使用GII來進行生成.

配置 GII

打開 api/config/main-local.php 文件 修改如下:

if (!YII_ENV_TEST) {
    // configuration adjustments for "dev" environment
    $config["bootstrap"][] = "debug";
    $config["modules"]["debug"] = [
        "class" => "yiidebugModule",
    ];

    $config["bootstrap"][] = "gii";
    $config["modules"]["gii"] = [
        "class" => "yiigiiModule",
        "allowedIPs" => ["127.0.0.1", "*"]
    ];
}

我這里因為使用的是 Homestead ,默認是不允許訪問 GII 的,所以得加上 "allowedIPs" => ["127.0.0.1", "*"] ,否則會出現(xiàn) Forbidden (#403), 你可以根據(jù)自己的需要來進行配置,或者不配置

生成Modules

瀏覽器中輸入 http://your host/gii ,可以看到 Module Generator ,點擊 Start

Modules Class 中輸入:apimodulesv1Module

Module ID 中輸入v1,(一般會自動輸入)

點擊 Preview

最后點擊 Generate 進行生成

配置模塊

打開 api/config/main.php 文件,修改 modules

"modules" => [
    "v1"=>[
        "class"=>"apimodulesv1Module",
    ],
],

接著修改 urlManager

"urlManager" => [
    "enablePrettyUrl" => true,
    "enableStrictParsing" => true,
    "showScriptName" => false,
    "rules" => [
        ["class" => "yii
estUrlRule",
            "controller" => "v1/default",
            "extraPatterns"=>[
                "GET index"=>"index",
            ],
        ],
    ],
],

基于以上,Yii2.0 RESTFul API 就實現(xiàn)了版本管理,我們可以通過如下地址進行訪問:

http://localhost/v1/defaults
多說一點,我上方的地址是已經(jīng)映射到api/web目錄,請根據(jù)自己的實際情況進行配置

打開剛生成的 modules 文件目錄,可以看到里面存在一個 v1 的目錄,可以看到該目錄還有一個controllers,以及一個 views 目錄
,我們剛才訪問的 defaults 其實就是這兩個文件,和傳統(tǒng)的web項目一樣控制器渲染視圖

好了,你可能知道了,我們以后的控制器代碼就放到 modules/v1/controllers 里了

剛才僅僅是默認GII為我們生成的代碼,因為我們是API,所以 views 目錄,我們一般情況下用不到。

新建一個 rest 的控制器
modulesv1controllers 下新建 UserController


修改 api/config/main.php 中的urlManager

"urlManager" => [
    "enablePrettyUrl" => true,
    "enableStrictParsing" => true,
    "showScriptName" => false,
    "rules" => [
        ["class" => "yii
estUrlRule",
            "controller" => "v1/default",
            "extraPatterns"=>[
                "GET index"=>"index",
            ],
        ],
        ["class" => "yii
estUrlRule",
            "controller" => "v1/user",
            "extraPatterns"=>[
                "GET index"=>"index",
            ],
        ],
    ],
],

試著訪問下

http://localhost/v1/users/index

ok,以上就是 Yii2.0 版本管理的實現(xiàn)方式

格式化響應

修改 api/config/main.phpcomponents 數(shù)組中添加 response

"response" => [
    "class" => "yiiwebResponse",
    "on beforeSend" => function ($event) {
        $response = $event->sender;
        $response->data = [
            "success" => $response->isSuccessful,
            "code" => $response->getStatusCode(),
            "message" => $response->statusText,
            "data" => $response->data,
        ];
        $response->statusCode = 200;
    },
],

至此關(guān)于 Yii2.0 RESTFul API 我一共完成了 3 篇文章,分別為:

Yii2.0 RESTful API 基礎配置教程

Yii2.0 RESTful API 認證教程

Yii2.0 RESTful API 之版本控制

寫得實在不怎么樣,您如果看了有收獲,不妨留言給個評論,或者您覺得寫得有問題,或者不明白,也可以留言,我們可以一塊探討研究。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/29917.html

相關(guān)文章

  • Yii2.0 RESTful API 速率限制

    摘要:之速率限制什么是速率限制權(quán)威指南翻譯過來為限流,為防止濫用,你應該考慮對您的限流。如果在規(guī)定的時間內(nèi)接收了一個用戶大量的請求,將返回響應狀態(tài)代碼這意味著過多的請求。 Yii2.0 RESTful API 之速率限制 什么是速率限制? 權(quán)威指南翻譯過來為限流,為防止濫用,你應該考慮對您的 API 限流。 例如,您可以限制每個用戶 10 分鐘內(nèi)最多調(diào)用 API 100 次。 如果在規(guī)定的時...

    LeviDing 評論0 收藏0
  • Yii2.0 RESTful API 基礎配置教程[轉(zhuǎn)載]

    摘要:最近在做功能,找了好久的資料,才找到這類的教程,感謝該作者,以下內(nèi)容根據(jù)我的項目實際情況做了一定的修改。 最近在做Yii2.0 RESTful API功能,找了好久的資料,才找到這類的教程,感謝該作者,以下內(nèi)容根據(jù)我的項目實際情況做了一定的修改。 安裝yii2.0 安裝 Composer 后,您可以通過在 Web 可訪問的文件夾下運行以下命令來 安裝Yii應用程序模板: compose...

    xorpay 評論0 收藏0
  • Yii2.0 RESTful API 基礎配置教程

    這篇說下yii2.0開發(fā) API 吧,使用 RESTful API模式 安裝Yii2.0 通過 Composer 安裝 這是安裝Yii2.0的首選方法。如果你還沒有安裝 Composer,你可以按照這里的說明進行安裝。 安裝完 Composer,運行下面的命令來安裝 Composer Asset 插件: php composer.phar global require fxp/composer-a...

    fyber 評論0 收藏0
  • Yii2.0 RESTful API 認證教程

    摘要:請求參數(shù)當作請求參數(shù)發(fā)送,例如,由于大多數(shù)服務器都會保存請求參數(shù)到日志,這種方式應主要用于請求,因為它不能使用頭來發(fā)送使用者從認證服務器上獲取基于協(xié)議的,然后通過發(fā)送到服務器。 認證介紹 和Web應用不同,RESTful APIs 通常是無狀態(tài)的, 也就意味著不應使用 sessions 或 cookies, 因此每個請求應附帶某種授權(quán)憑證,因為用戶授權(quán)狀態(tài)可能沒通過 sessions ...

    JohnLui 評論0 收藏0
  • Yii2.0 RESTful API 認證教程【令牌驗證】

    摘要:最近在做認證功能,記錄整個過程,方便以后查看。請求參數(shù)當作請求參數(shù)發(fā)送,例如,由于大多數(shù)服務器都會保存請求參數(shù)到日志,這種方式應主要用于請求,因為它不能使用頭來發(fā)送使用者從認證服務器上獲取基于協(xié)議的,然后通過發(fā)送到服務器。 最近在做RESTful API認證功能,記錄整個過程,方便以后查看。本文參照了 https://segmentfault.com/a/119000001636860...

    X1nFLY 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<