Laravel-限速特定的API路由

时间:2019-03-29 15:41:08

标签: php laravel api

我目前正在一个Laravel驱动的网站上,该网站由两个独立的服务器,一个API服务器和一个公共Web服务器(均运行Laravel)驱动。

API有许多路由,用于验证某些关键术语的可用性,例如电子邮件地址和URL链接。这些路由通过AJAX调用以检查数据库,并在按键时触发。

可以预料的是,每分钟会触发AJAX请求多次,因此API会引发“请求过多”错误。我知道可以通过增加请求限制来解决此问题,但是我只想针对两条路由而不是全部进行此操作。

如何禁用单个API路由的速率限制?

这是路线之一,很标准:

Route::post('/email/is-available', function(Request $request) {

    ...

})->middleware('my_own_api_key_checking_middleware');

非常感谢!

1 个答案:

答案 0 :(得分:1)

您收到的请求消息过多,因为Laravel默认将节流中间件应用于所有api路由,要禁用它,请转到app/Http/Kernel.php并从属性中删除或评论throttle数组条目$middlewareGroups,这将为组中的每条路由禁用节流。 现在,在您的路线文件上,将其添加到所需的路线:

->middleware('throttle:240,1');

第一个数字是请求的限制,第二个是时间。