2017-03-27 7 views
9

क्या लैरावेल में प्रत्येक/व्यक्तिगत मार्गों पर सीमित दर को अक्षम करने का कोई तरीका है?लार्वेल में दर limiter अक्षम करें?

मैं ऐसे अंतराल का परीक्षण करने की कोशिश कर रहा हूं जो बहुत से अनुरोध प्राप्त करता है, लेकिन यादृच्छिक रूप से लैरवेल कुछ सौ अनुरोधों के लिए { status: 429, responseText: 'Too Many Attempts.' } के साथ प्रतिक्रिया देना शुरू कर देगा जो एक बड़ा दर्द परीक्षण करता है।

उत्तर

20

app/Http/Kernel.php में लार्वेल के पास सभी एपीआई मार्गों के लिए डिफ़ॉल्ट थ्रॉटल सीमा है।

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

टिप्पणी या इसे बढ़ाएं।

+2

यदि मैं टिप्पणी करता हूं तो इसका मतलब है कि यह कोई सीमा नहीं होगी? –

+1

सही। टिप्पणी की गई कोई मतलब नहीं है। – jezmck

4

मान लें कि आप एपीआई मार्गों का उपयोग कर रहे हैं तो आप एप/एचटीपी/कर्नेल.एफ़.पी.पी. में थ्रॉटल बदल सकते हैं या इसे पूरी तरह से बंद कर सकते हैं। यदि आपको अन्य मार्गों के लिए थ्रॉटल करने की आवश्यकता है तो आप अलग-अलग उनके लिए मिडलवेयर पंजीकृत कर सकते हैं।

(उदाहरण के नीचे: थ्रॉटल - तो 1 मिनट के लिए जाने से रोक दिया 60 प्रयास)

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

आप स्वचालित परीक्षण के लिए सिर्फ अक्षम करना चाहते हैं, तो आप अपने परीक्षणों पर WithoutMiddleware विशेषता का उपयोग कर सकते हैं।

use Illuminate\Foundation\Testing\WithoutMiddleware; 

class YourTest extends TestCase { 
    use WithoutMiddleware; 

    ... 

अन्यथा, बस अपने कर्नेल फ़ाइल (app/Http/Kernel.php) से 'throttle:60,1', लाइन हटाने, और आपकी समस्या को हल कर दिया जाएगा।