2017-03-27 21 views
9

Czy istnieje sposób wyłączenia ograniczania stawek na każdej/poszczególnych trasach w Laravel?Wyłącz limit częstości w Laravel?

Próbuję przetestować punkt końcowy, który otrzymuje wiele żądań, ale losowo Laravel zacznie odpowiadać { status: 429, responseText: 'Too Many Attempts.' } dla kilkuset wniosków, co sprawia, że ​​testowanie ogromny ból.

Odpowiedz

20

W app/Http/Kernel.php Laravel ma domyślny limit przepustnicy dla wszystkich tras API.

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

Skomentuj lub zwiększ go.

+2

Jeśli skomentuję, czy oznacza to, że nie jest to limit? –

+1

Prawidłowo. Skomentowany oznacza brak limitu. – jezmck

4

Zakładając, że korzystasz z tras API, możesz zmienić przepustowość w aplikacji/Http/Kernel.php lub całkowicie ją wyłączyć. Jeśli potrzebujesz przepustnicy dla innych tras, możesz zarejestrować oprogramowanie pośrednie dla nich osobno.

(przykład poniżej: przepustnicy - 60 prób następnie zablokowane przez 1 minutę)

'api' => [ 
     'throttle:60,1', 
     'bindings', 
    ], 
5

Jeśli chcesz wyłączyć tylko dla zautomatyzowanych testów, można użyć cechę WithoutMiddleware od wyników badań.

use Illuminate\Foundation\Testing\WithoutMiddleware; 

class YourTest extends TestCase { 
    use WithoutMiddleware; 

    ... 

W przeciwnym razie po prostu usunąć wiersz 'throttle:60,1', z Kernel pliku (app/Http/Kernel.php), a twój problem zostanie rozwiązany.