api-rate-limiting · aj-geddes — скилл для Claude Code: что делает и как установить
Помогает настроить ограничение частоты запросов к API через token bucket, sliding window и Redis. Защищает эндпоинты от брутфорса и перегрузок трафика.
npx skills add aj-geddes/useful-ai-prompts --skill api-rate-limiting -a claude-codeЧто делает api-rate-limiting
Скилл содержит алгоритмы ограничения запросов: токен-ведро (token bucket), скользящее окно (sliding window) и фиксированное окно. Внутри описаны готовые стратегии для контроля лимитов по IP-адресу, пользователю или конкретному эндпоинту.
В справочных материалах разобраны реализация на Python с Flask, интеграция с Redis для кластеров и отправка служебных заголовков, включая Retry-After. Для продакшена документация прямо запрещает хранить счётчики только в оперативной памяти сервера.
Какие задачи решает
- защитить эндпоинты от брутфорса и DoS-атак
- настроить распределённое ограничение частоты запросов через Redis
- внедрить тарифные лимиты для разных уровней подписки
- добавить HTTP-заголовки лимитов и Retry-After в ответы API
Примеры запросов агенту
- Настрой ограничение запросов по IP через алгоритм скользящего окна в Flask.
- Реализуй токен-ведро с хранением состояния в Redis для защиты эндпоинта авторизации.
- Добавь заголовки лимитов и Retry-After в ответы API.
Как установить api-rate-limiting
1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill api-rate-limiting -a claude-code2Вручную: положить файлы
~/.claude/skills/api-rate-limiting/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/api-rate-limiting/
1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill api-rate-limiting -a codex2Вручную: положить файлы
.agents/skills/api-rate-limiting/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill api-rate-limiting -a cursor2Вручную: положить файлы
.cursor/skills/api-rate-limiting/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install aj-geddes/useful-ai-prompts api-rate-limiting2Вручную: положить файлы
.github/skills/api-rate-limiting/SKILL.md1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill api-rate-limiting -a gemini-cli2Командой платформы
gemini skills install https://github.com/aj-geddes/useful-ai-prompts --path skills/api-rate-limitingВручную: положить файлы
.devin/skills/api-rate-limiting/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill api-rate-limiting -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о api-rate-limiting
Как установить api-rate-limiting в Claude Code?
Выполните в терминале команду npx skills add aj-geddes/useful-ai-prompts --skill api-rate-limiting -a claude-code.
Что делает скилл api-rate-limiting?
Он предоставляет готовые шаблоны алгоритмов token bucket и sliding window для защиты эндпоинтов от спама и перегрузок. С его помощью также распределяют квоты по тарифам клиентов.
Можно ли использовать хранение счётчиков в оперативной памяти в продакшене?
Руководство запрещает хранить состояние только в памяти на проде, потому что при нескольких инстансах приложения подсчёт ломается. Для распределённых систем авторы предписывают использовать Redis.
Исходный текст
SKILL.md · MIT
---
name: api-rate-limiting
description: >
Implement API rate limiting strategies using token bucket, sliding window, and
fixed window algorithms. Use when protecting APIs from abuse, managing
traffic, or implementing tiered rate limits.
---
# API Rate Limiting
## Table of Contents
- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)
## Overview
Protect APIs from abuse and manage traffic using various rate limiting algorithms with per-user, per-IP, and per-endpoint strategies.
## When to Use
- Protecting APIs from brute force attacks
- Managing traffic spikes
- Implementing tiered service plans
- Preventing DoS attacks
- Fairness in resource allocation
- Enforcing quotas and usage limits
## Quick Start
Minimal working example:
```javascript
// Token Bucket Rate Limiter
class TokenBucket {
constructor(capacity, refillRate) {
this.capacity = capacity;
this.tokens = capacity;
this.refillRate = refillRate; // tokens per second
this.lastRefillTime = Date.now();
}
refill() {
const now = Date.now();
const timePassed = (now - this.lastRefillTime) / 1000;
const tokensToAdd = timePassed * this.refillRate;
this.tokens = Math.min(this.capacity, this.tokens + tokensToAdd);
this.lastRefillTime = now;
}
consume(tokens = 1) {
this.refill();
if (this.tokens >= tokens) {
this.tokens -= tokens;
return true;
}
// ... (see reference guides for full implementation)
```
## Reference Guides
Detailed implementations in the `references/` directory:
| Guide | Contents |
|---|---|
| [Token Bucket Algorithm](references/token-bucket-algorithm.md) | Token Bucket Algorithm |
| [Sliding Window Algorithm](references/sliding-window-algorithm.md) | Sliding Window Algorithm |
| [Redis-Based Rate Limiting](references/redis-based-rate-limiting.md) | Redis-Based Rate Limiting |
| [Tiered Rate Limiting](references/tiered-rate-limiting.md) | Tiered Rate Limiting |
| [Python Rate Limiting (Flask)](references/python-rate-limiting-flask.md) | Python Rate Limiting (Flask) |
| [Response Headers](references/response-headers.md) | Response Headers |
## Best Practices
### ✅ DO
- Include rate limit headers in responses
- Use Redis for distributed rate limiting
- Implement tiered limits for different user plans
- Set appropriate window sizes and limits
- Monitor rate limit metrics
- Provide clear retry guidance
- Document rate limits in API docs
- Test under high load
### ❌ DON'T
- Use in-memory storage in production
- Set limits too restrictively
- Forget to include Retry-After header
- Ignore distributed scenarios
- Make rate limits public (security)
- Use simple counters for distributed systems
- Forget cleanup of old data
© aj-geddes · MIT · aj-geddes/useful-ai-prompts
Похожие скиллы
Все скиллы по теме «Бэкенд и API» →Сначала — api-rate-limiting от других авторов.