在Laravel中禁用速率限制器?

2022-08-30 07:18:55

有没有办法在Laravel中的每个/单个路由上禁用速率限制?

我正在尝试测试一个接收大量请求的端点,但随机Laravel将开始响应几百个请求,这使得测试变得非常困难。{ status: 429, responseText: 'Too Many Attempts.' }


答案 1

在 Laravel 中,所有 api 路由都有默认的限制。app/Http/Kernel.php

protected $middlewareGroups = [
    ...
    'api' => [
        'throttle:60,1',
    ],
];

评论或增加它。


答案 2

实际上,您只能在测试中禁用某个中间件。

use Illuminate\Routing\Middleware\ThrottleRequests;

class YourTest extends TestCase 
{

    protected function setUp()
    {
        parent::setUp();
        $this->withoutMiddleware(
            ThrottleRequests::class
        );
    }
    ...
}

推荐