国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

Yii2.0 RESTful API的速度限制是什么?有什么用?

2020-03-22 20:19:21
字體:
來源:轉載
供稿:網友
本篇文章給大家帶來的內容是關于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}html' target='_blank'>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 yiiiltersRateLimitInterface;use yiiwebIdentityInterface;class User extends ActiveRecord implements IdentityInterface,RateLimitInterface}

實現 RateLimitInterface 所需要的方法

public function getRateLimit($request, $action) return [1, 1]; // $rateLimit requests per secondpublic 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 yiiiltersuthCompositeAuth;use yiiiltersuthHttpBearerAuth;use yiiiltersuthQueryParamAuth;use yiiiltersRateLimiter;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的速度限制是什么?有什么用?的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西乌| 崇左市| 娄烦县| 武城县| 吉木乃县| 文山县| 松江区| 娄底市| 巴南区| 万载县| 山东| 吉木乃县| 平和县| 吴忠市| 融水| 上饶市| 浦县| 龙州县| 万载县| 武城县| 枣阳市| 广元市| 宣威市| 屏南县| 韶关市| 彰化市| 通海县| 灵山县| 连平县| 平果县| 晋江市| 威宁| 琼海市| 龙州县| 西吉县| 伊通| 屏南县| 西林县| 昌邑市| 深水埗区| 五指山市|