# रेट लिमिटिंग — REST API Design: Resources, Status Codes और Security

Source: https://www.skillbyai.com/hi/restapi/api-rate-limiting

> Rate limiting से API सुरक्षित करें, उपयोगी headers के साथ 429 लौटाएँ और token bucket algorithm समझें।

## रिक्वेस्ट क्यों सीमित करें

बिना सीमा के, एक गलत व्यवहार करने वाला स्क्रिप्ट, रिट्राई स्टॉर्म, या दुर्भावनापूर्ण एक्टर आपके API को भारी कर सकता है और बाकी सबके लिए इसे बिगाड़ सकता है। रेट लिमिटिंग यह सीमित करती है कि एक की/यूज़र/IP एक समय-सीमा में कितनी रिक्वेस्ट कर सकता है।

## क्लाइंट को बताना

`429 Too Many Requests` को ऐसे हेडर के साथ लौटाएँ ताकि अच्छे व्यवहार वाले क्लाइंट खुद-ब-खुद रुक सकें।

```http
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1725448800
Retry-After: 30
```

## टपकती बाल्टी

**टोकन बकेट** एल्गोरिद्म एक स्थिर दर पर बाल्टी में टोकन भरता है; हर रिक्वेस्ट एक खर्च करती है। छोटे उछाल जमा टोकन को खत्म करते हैं, पर आप कभी भी भरने की दर से अधिक स्थायी रूप से टिक नहीं सकते — सहज, और समझने में सरल।

**Quiz:** एक क्लाइंट अपनी रेट सीमा पार कर देता है। API को क्या लौटाना चाहिए?

- [ ] 403 Forbidden
- [ ] 503 Service Unavailable
- [x] 429 Too Many Requests
- [ ] खाली body के साथ 200 OK

*Answer:* 429 Too Many Requests. 429 विशेष रूप से रेट लिमिटिंग बताता है, आदर्श रूप से Retry-After हेडर के साथ जो क्लाइंट को बताता है कि दोबारा कब कोशिश करे।
