国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 车险| 肥东县| 赣州市| 扬州市| 兴山县| 化德县| 津南区| 瑞金市| 博兴县| 沙雅县| 双牌县| 博白县| 黎平县| 楚雄市| 凭祥市| 清丰县| 溧阳市| 张北县| 西昌市| 光山县| 天水市| 梧州市| 蒲城县| 乌拉特后旗| 河南省| 西畴县| 敦煌市| 都匀市| 原阳县| 浦县| 华坪县| 会泽县| 永福县| 商水县| 苏尼特右旗| 黔西县| 大安市| 临安市| 马山县| 同仁县| 莫力|