[英]API Throttle in Laravel 5.2
我在Laravel 5.2中看到了關於油門的這個教程
看起來油門只用於API,但為什么不能用於其他控制器的東西,以避免人們通過Postman發送相同形式的100倍。
我告訴你,因為在Kernel.php中,現在,中間件在web和apis之間明顯划分: Kernel.php:Laravel 5.2
您也可以將其應用於網頁。 從您的評論來看,您對中間件(主要是中間件組)的新功能感到困惑。
5.2帶來了一種分組中間件的方法,就像之前使用Route組一樣。 在5.1中你會做類似的事情:
Route::group(['prefix' => 'api', 'middleware'=>'auth,custom_middleware,permission:edit_permissions'], function() {
Route::post('permissions/{id}/store', ['uses'=>'PermissionController@store']);
});
這仍然是完全有效的,但如果你想添加另一個具有相同中間件的Route組,你必須要么組織它們,以便它們嵌套在應用這些中間件的單個Route組下面,或者你必須復制粘貼中間件,既不是可取的。 使用5.2,您只需要:
Kernel.php
protected $middlewareGroups = [
'permissions_api' => [
'auth',
'custom_middleware',
'permission:edit_permissions',
]
];
routes.php
Route::group(['middleware' => ['permissions_api']], function () {
Route::post('permissions/{id}/store', ['uses'=>'PermissionController@store']);
});
Route::group(['middleware' => ['permissions_api']], function () {
Route::post('permissions/{id}/update', ['uses'=>'PermissionController@update']);
});
因此,您可以將這些中間件分組並將其應用於這些組中。 這就是你所看到的api
和web
。 這只是Laravel提供的默認中間件組,您可以根據需要進行修改。 throttle
可用作中間件,您可能需要它。 以下都是完全有效的
Route::group(['middleware' => ['throttle:60,1']], function () {
Route::post('permissions/{id}/update', ['uses'=>'PermissionController@update']);
});
要么
protected $middlewareGroups = [
'permissions_api' => [
'auth',
'custom_middleware',
'permission:edit_permissions',
'throttle:60,1'
]
];
因此, throttle
只是一個中間件,可以像任何中間件一樣應用。 它在Kernel.php
中定義為'throttle' => \\Illuminate\\Routing\\Middleware\\ThrottleRequests::class,
而60,1
只是中間件參數,在5.1中添加
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.