登录
首页 >  文章 >  php教程

Laravel 中间件`throttle:api`究竟是如何限制API请求频率的?

时间:2024-12-04 09:31:04 262浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《Laravel 中间件`throttle:api`究竟是如何限制API请求频率的?》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

Laravel 中间件`throttle:api`究竟是如何限制API请求频率的?

新手请教 laravel 中间件

在 laravel 路由配置文件中,我们经常看到如下配置:

'api' => [
    // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
    'throttle:api',
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
],

其中 'throttle:api', 引发了疑问。

'throttle:api' 的含义

'throttle:api' 是一个速率限制中间件,用于限制 api 请求的频率。后面的 api 参数是一个 ratelimiter 的名称。

ratelimiter

ratelimiter 是一个类,用于限制请求速率。laravel 默认提供了几个 ratelimiter 实例,其中一个是 api

中间件参数格式

中间件参数以冒号开始,多个参数用逗号分隔。对于 'throttle:api', 参数格式如下:

  • maxattempts: 允许的请求最大数量。默认值为 60。
  • decayminutes: 限制窗口的分钟数。默认值为 1。
  • limiter: ratelimiter 的名称。默认值为 api

示例

'throttle:api', 表示使用名为 api 的 ratelimiter 限制 api 请求的频率。其中:

  • maxattemptsapi
  • decayminutes 为 1。

php 中的参数类型和个数的混用

需要注意的是,php 是一种弱类型语言,因此参数类型和参数个数经常混着用。

  • 'throttle:60,1', 表示 maxattempts 为 60,decayminutes 为 1
  • 'throttle:api', 表示 maxattempts 为 api(默认),decayminutes 为 1(默认)。

今天关于《Laravel 中间件`throttle:api`究竟是如何限制API请求频率的?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>