API 请求频率?

问题描述:有两个接口 1,2 ,当有人请求接口时我们需要限制访问频率,可以根据IP或其他字段,
现在的问题是:有没有方法解决,1接口用IP限制,2接口用其他的字段限制

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 2

看下这个,看有帮助没

在 Laravel 中,你可以限制某些路由的请求频率。下面是一段文档中的例子。

Route::middleware('auth:api', 'throttle:60,1')->group(function () {
Route::get('/user', function () {
//
});
});

在上面的例子中,用户对该分组下的路由每分钟只能请求 60 次。这个非常棒的功能是通过 throttle 中间件实现的。但是,某些情况下这种控制还不够,特别是你想通过其他的条件来控制频率的时候。而这,正是动态访问控制大展身手的时候。下面是来自文档中的另一段示例代码:

Route::middleware('auth:api', 'throttle:rate_limit,1')->group(function () {
Route::get('/user', function () {
//
});
});

同样的,也使用 throttle 中间件,同时将频率设置为 1。但是,实际的请求计数并不依赖于这里的设置,而是传递一个属性名称。在这个例子中,rate_limit 是你用户表的的一个字段,它被用于计算最大请求计数。这样,就能实现针对不同用户来设置不同的请求频率。例如:你需要为不同订阅计划的用户分配不同的频率。

5年前 评论

@miss201 如果按照第二种形式,那么每分钟限制访问30次怎么写?

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!