dingo API中的访问节流限制
访问节流限制
节流限速(throttling) 允许你限制客户端给定时间的访问次数。
限制和过期时间是在限速器里定义的。
默认有两个限速器,验证通过限速器和未验证限速器。
访问节流限制
访问节流限制
要为路由或路由组启用节流限制,你必须启用 api.throttle 中间件。
一旦启用了节流限制,你必须已经配置过了一些限制或配置过了具体的路由限制。
$api->version('v1', ['middleware' => 'api.throttle'], function ($api) {
// 此版本组中的路由将需要身份认证.
});
特定路由上的节流限制
$api->version('v1', function ($api) {
//启用了中间件验证
$api->get('user', ['middleware' => 'api.throttle', function () {
// 这个路由需要验证
}]);
//没有用到验证
$api->get('posts', function () {
// 这个路由不需要验证
});
});
路由特定节流
如果只是想限制某些路由或者路由群组,可使用 limit 和 expires 选项
例如,我在一个为v1版的API中使用节流
limit是请求次数,expires是过期时间
$api->version('v1', ['middleware' => 'api.throttle', 'limit' => 3, 'expires' => 1], function ($api) {
$api->group(['middleware' => 'api.auth'], function ($api) {
$api->get('users', [AppHttpControllersTestController::class, 'users']);
});
});
以上为这个路由设置了请求限制 3次,过期时间 1 分钟。如果你把它设置在路由群组上,那组内的每个路由具有 3 次请求的限制。
版权声明:
作者:linrux
链接:https://www.tot7.cn/technology/php/180.html
来源:Code林
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论