laravel8更新之速率限制改進
原文地址:https://www.wjcms.net/archives/laravel8%E6%9B%B4%E6%96%B0%E4%B9%8B%E9%80%9F%E7%8E%87%E9%99%90%E5%88%B6%E6%94%B9%E8%BF%9B
Laravel的請求速率限制器功能已增強,具有更大的靈活性和功能,同時仍保持與先前版本的throttle中介軟體API的向後相容性。
速率限制器是使用RateLimiter立面的for方法定義的。該for方法接受一個速率限制器名稱和一個Closure,該Closure返回應應用於分配了該速率限制器的路由的限制配置:
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Support\Facades\RateLimiter;
RateLimiter::for('global', function (Request $request) {
return Limit::perMinute(1000);
});
由於速率限制器回撥接收傳入的HTTP請求例項,因此您可以根據傳入的請求或經過身份驗證的使用者動態構建適當的速率限制:
RateLimiter::for('uploads', function (Request $request) {
return $request->user()->vipCustomer()
? Limit::none()
: Limit::perMinute(100);
});
有時您可能希望將速率限制按任意值進行細分。例如,您可能希望允許使用者每個IP地址每分鐘100次訪問給定路由。為此,您可以by在建立速率限制時使用以下方法:
RateLimiter::for('uploads', function (Request $request) {
return $request->user()->vipCustomer()
? Limit::none()
: Limit::perMinute(100)->by($request->ip());
});
可以使用throttle 中介軟體將速率限制器附加到路由或路由組。油門中介軟體接受您希望分配給路線的速率限制器的名稱:
Route::middleware(['throttle:uploads'])->group(function () {
Route::post('/audio', function () {
//
});
Route::post('/video', function () {
//
});
});
相關文章
- Yii2.0 RESTful API 之速率限制RESTAPI
- Envoy、gRPC和速率限制RPC
- SRE 彈效能力:使用 Envoy 對應用進行速率限制
- Android AsyncLayoutInflater 限制及改進Android
- Spring Cloud Gateway限制API速率 - tanzuSpringCloudGatewayAPI
- 使用 Redis 實現分散式速率限制Redis分散式
- Laravel API 速率限制器的使用LaravelAPI
- go每日一庫 [go-rate] 速率限制器Go
- 機器學習之學習速率機器學習
- windows 7的改進之處Windows
- GoldWave的消音、淡入淡出、改變音樂速率Go
- MySQL 多表更新的限制MySql
- 使用Bucket4j限制Spring API的訪問速率 - BaeldungSpringAPI
- idou老師教你學Istio:如何用 Istio 實現速率限制
- idou老師教你學Istio 23 : 如何用 Istio 實現速率限制
- 持續改進之技術篇#1
- ASP.NET Core中如何限制響應傳送速率(不是呼叫頻率)ASP.NET
- 損失函式改進方法之Focal Loss函式
- 7個 Linux 桌面需要改進之處Linux
- .NET 6 Preview 3 中 ASP.NET Core 的更新和改進ViewASP.NET
- laravel8資料庫操作之group by踩坑Laravel資料庫
- SpringBoot中實現API速率限制的令牌桶演算法專案Spring BootAPI演算法
- iOS效能優化之頁面載入速率iOS優化
- 蘋果全新程式語言 Swift 迎來大幅更新,改進多項功能蘋果Swift
- 效能改進之專案例會匯入實踐
- laravel8 routeLaravel
- GitHub如何在Redis中使用分片的複製速率限制器擴充套件APIGithubRedis套件API
- 學習速率
- 生產系統調優之_毫秒級的改進
- [個體軟體過程]之過程改進 (轉)
- 微軟Surface Go推送新Wind10韌體更新:改進螢幕校準微軟Go
- GitHub - RakeshBhat/rbsample-sprng_camelthrottle:結合SpringBoot和ApacheCamel的REST API速率限制器GithubSpring BootApacheRESTAPI
- C++排序演算法之氣泡排序改進版C++排序演算法
- Java程式碼質量改進之:同步物件的選擇Java物件
- 深入理解ES6之《改進的陣列功能》陣列
- 【拖雷】Taobao監控系統之改進——檔案傳輸
- 自我反省與改進
- 清晰勝過聰明: 改進 flatbuffers-go[更新記憶體洩露與 GC]Go記憶體洩露GC