国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Yii2.0 RESTful API 之速率限制

LeviDing / 2400人閱讀

摘要:之速率限制什么是速率限制權威指南翻譯過來為限流,為防止濫用,你應該考慮對您的限流。如果在規定的時間內接收了一個用戶大量的請求,將返回響應狀態代碼這意味著過多的請求。

Yii2.0 RESTful API 之速率限制 什么是速率限制?

權威指南翻譯過來為限流,為防止濫用,你應該考慮對您的 API 限流。 例如,您可以限制每個用戶 10 分鐘內最多調用 API 100 次。 如果在規定的時間內接收了一個用戶大量的請求,將返回響應狀態代碼 429 (這意味著過多的請求)。

要啟用速率限制,首先需要實現認證類,而關于認證的章節我在 Yii2.0 RESTful API 認證教程 進行了詳細的闡述,本篇就不過多介紹,再次基礎上進行操作
啟用速率限制

翻閱權威指南,我們可以看到要啟用速率限制首先 認證類 需要繼承 yiifiltersRateLimitInterface

生成兩個關鍵字段

php yii migrate/create add_allowance_and_allowance_updated_at_to_user

修改 剛才的遷移文件

/**
 * {@inheritdoc}
 */
public function safeUp()
{
    $this->addColumn("user", "allowance", $this->integer());
    $this->addColumn("user", "allowance_updated_at", $this->integer());
}

/**
 * {@inheritdoc}
 */
public function safeDown()
{
    $this->dropColumn("user", "allowance");
    $this->dropColumn("user", "allowance_updated_at");
}

執行遷移

php yii migrate

編寫認證類,并繼承 RateLimitInterface

namespace apimodels;

use Yii;
use yiiaseNotSupportedException;
use yiiehaviorsTimestampBehavior;
use yiidbActiveRecord;
use yiifiltersRateLimitInterface;
use yiiwebIdentityInterface;

class User extends ActiveRecord implements IdentityInterface,RateLimitInterface
{
    .
    .
    .
}

實現 RateLimitInterface 所需要的方法

public function getRateLimit($request, $action)
{
    return [1, 1]; // $rateLimit requests per second
}

public function loadAllowance($request, $action)
{
    return [$this->allowance, $this->allowance_updated_at];
}

public function saveAllowance($request, $action, $allowance, $timestamp)
{
    $this->allowance = $allowance;
    $this->allowance_updated_at = $timestamp;
    $this->save();
}

控制器中實現調用

use yiifiltersauthCompositeAuth;
use yiifiltersauthHttpBearerAuth;
use yiifiltersauthQueryParamAuth;
use yiifiltersRateLimiter;

public function behaviors()
{
    $behaviors = parent::behaviors();
    $behaviors["rateLimiter"] = [
        "class" => RateLimiter::className(),
        "enableRateLimitHeaders" => true,
    ];
    $behaviors["authenticator"] = [
        "class" => CompositeAuth::className(),
        "authMethods" => [
            //Http::className(),
            HttpBearerAuth::className(),
            QueryParamAuth::className(),
        ],
    ];
    //$behaviors["rateLimiter"]["enableRateLimitHeaders"] = true;
    return $behaviors;
}

ok,請求下你的 action,多次請求如果出現 429,那么表示速率限制啟用成功

以上就是關于 Yii2.0 速率限制的使用,速率限制需要和認證配合著使用,關于認證的,查閱Yii2.0 RESTful API 認證教程 ,這篇文章,推薦您,先看完認證,先做完認證的功能,然后在啟用速率限制

關于 Yii2.0 RESTFul API到此我覺得就結束了,核心功能就是這些,剩下的就是具體的實戰了,多練、多敲,

一共四篇文章,分別為:

Yii2.0 RESTful API 基礎配置教程

Yii2.0 RESTful API 認證教程

Yii2.0 RESTful API 之版本控制

Yii2.0 RESTful API 之速率限制

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/29916.html

相關文章

  • Yii2.0 RESTful API 版本控制

    摘要:之版本控制之前我寫過兩篇關于如何搭建,以及認證等處理,但是沒有涉及到版本管理,今天就來談談版本管理如何實現。如果你還沒有安裝,你可以按照這里的說明進行安裝。 Yii2.0 RESTful API 之版本控制 之前我寫過兩篇關于 Yii2.0 RESTful API 如何搭建,以及 認證 等處理,但是沒有涉及到版本管理,今天就來談談版本管理如何實現。 索性就從頭開始一步一步搭建吧,但是關...

    _ang 評論0 收藏0
  • Yii2.0 RESTful API 基礎配置教程[轉載]

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

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

    這篇說下yii2.0開發 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 認證教程

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

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

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

    X1nFLY 評論0 收藏0

發表評論

0條評論

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