亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Yii2.0 RESTful API 之速率限制

LeviDing / 2469人閱讀

摘要:之速率限制什么是速率限制權(quán)威指南翻譯過來(lái)為限流,為防止濫用,你應(yīng)該考慮對(duì)您的限流。如果在規(guī)定的時(shí)間內(nèi)接收了一個(gè)用戶大量的請(qǐng)求,將返回響應(yīng)狀態(tài)代碼這意味著過多的請(qǐng)求。

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

權(quán)威指南翻譯過來(lái)為限流,為防止濫用,你應(yīng)該考慮對(duì)您的 API 限流。 例如,您可以限制每個(gè)用戶 10 分鐘內(nèi)最多調(diào)用 API 100 次。 如果在規(guī)定的時(shí)間內(nèi)接收了一個(gè)用戶大量的請(qǐng)求,將返回響應(yīng)狀態(tài)代碼 429 (這意味著過多的請(qǐng)求)。

要啟用速率限制,首先需要實(shí)現(xiàn)認(rèn)證類,而關(guān)于認(rèn)證的章節(jié)我在 Yii2.0 RESTful API 認(rèn)證教程 進(jìn)行了詳細(xì)的闡述,本篇就不過多介紹,再次基礎(chǔ)上進(jìn)行操作
啟用速率限制

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

生成兩個(gè)關(guān)鍵字段

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");
}

執(zhí)行遷移

php yii migrate

編寫認(rèn)證類,并繼承 RateLimitInterface

namespace apimodels;

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

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

實(shí)現(xiàn) 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();
}

控制器中實(shí)現(xiàn)調(diào)用

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,請(qǐng)求下你的 action,多次請(qǐng)求如果出現(xiàn) 429,那么表示速率限制啟用成功

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

關(guān)于 Yii2.0 RESTFul API到此我覺得就結(jié)束了,核心功能就是這些,剩下的就是具體的實(shí)戰(zhàn)了,多練、多敲,

一共四篇文章,分別為:

Yii2.0 RESTful API 基礎(chǔ)配置教程

Yii2.0 RESTful API 認(rèn)證教程

Yii2.0 RESTful API 之版本控制

Yii2.0 RESTful API 之速率限制

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/29916.html

相關(guān)文章

  • Yii2.0 RESTful API 版本控制

    摘要:之版本控制之前我寫過兩篇關(guān)于如何搭建,以及認(rèn)證等處理,但是沒有涉及到版本管理,今天就來(lái)談?wù)劙姹竟芾砣绾螌?shí)現(xiàn)。如果你還沒有安裝,你可以按照這里的說明進(jìn)行安裝。 Yii2.0 RESTful API 之版本控制 之前我寫過兩篇關(guān)于 Yii2.0 RESTful API 如何搭建,以及 認(rèn)證 等處理,但是沒有涉及到版本管理,今天就來(lái)談?wù)劙姹竟芾砣绾螌?shí)現(xiàn)。 索性就從頭開始一步一步搭建吧,但是關(guān)...

    _ang 評(píng)論0 收藏0
  • Yii2.0 RESTful API 基礎(chǔ)配置教程[轉(zhuǎn)載]

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

    xorpay 評(píng)論0 收藏0
  • Yii2.0 RESTful API 基礎(chǔ)配置教程

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

    fyber 評(píng)論0 收藏0
  • Yii2.0 RESTful API 認(rèn)證教程

    摘要:請(qǐng)求參數(shù)當(dāng)作請(qǐng)求參數(shù)發(fā)送,例如,由于大多數(shù)服務(wù)器都會(huì)保存請(qǐng)求參數(shù)到日志,這種方式應(yīng)主要用于請(qǐng)求,因?yàn)樗荒苁褂妙^來(lái)發(fā)送使用者從認(rèn)證服務(wù)器上獲取基于協(xié)議的,然后通過發(fā)送到服務(wù)器。 認(rèn)證介紹 和Web應(yīng)用不同,RESTful APIs 通常是無(wú)狀態(tài)的, 也就意味著不應(yīng)使用 sessions 或 cookies, 因此每個(gè)請(qǐng)求應(yīng)附帶某種授權(quán)憑證,因?yàn)橛脩羰跈?quán)狀態(tài)可能沒通過 sessions ...

    JohnLui 評(píng)論0 收藏0
  • Yii2.0 RESTful API 認(rèn)證教程【令牌驗(yàn)證】

    摘要:最近在做認(rèn)證功能,記錄整個(gè)過程,方便以后查看。請(qǐng)求參數(shù)當(dāng)作請(qǐng)求參數(shù)發(fā)送,例如,由于大多數(shù)服務(wù)器都會(huì)保存請(qǐng)求參數(shù)到日志,這種方式應(yīng)主要用于請(qǐng)求,因?yàn)樗荒苁褂妙^來(lái)發(fā)送使用者從認(rèn)證服務(wù)器上獲取基于協(xié)議的,然后通過發(fā)送到服務(wù)器。 最近在做RESTful API認(rèn)證功能,記錄整個(gè)過程,方便以后查看。本文參照了 https://segmentfault.com/a/119000001636860...

    X1nFLY 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<