Communitygithub.com

YepAPI/skills

Balde de tokens, janela deslizante, limites por usuário/IP, com Redis e padrões Upstash.

O que é skills?

Este skill implementa lógica de rate limiting (limitação de taxa) para APIs e aplicações web, utilizando algoritmos como token bucket e sliding window. Ele é útil para controlar o tráfego e prevenir abusos, identificando chamadores por chave de API ou endereço IP, e aplicando limites diferentes por rota, como 100 req/min para APIs gerais e 5 req/min para autenticação. É compatível com ambientes serverless (via Upstash) e multi-instância (via Redis), e deve ser implementado como middleware global, com a capacidade de sobrescrever limites por rota. O skill também recomenda a separação de limites por camadas de usuário (free, pro, enterprise) e o registro de hits para detectar padrões de abuso.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/YepAPI/skills/tree/HEAD/skills/rate-limiting

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Limitação de Taxa

Regras

  • Use token bucket para endpoints de API, sliding window para rotas de autenticação/login
  • Identifique chamadores pela chave de API primeiro, com fallback para IP — nunca use apenas IP para rotas autenticadas
  • Retorne 429 Too Many Requests com cabeçalho Retry-After (segundos) e X-RateLimit-Remaining
  • Armazene contadores no Redis (ou Upstash para serverless) — nunca em memória para implantações multi-instância
  • Defina padrões sensatos: 100 req/min para API geral, 5 req/min para autenticação, 1000 req/min para leituras
  • Use @upstash/ratelimit para serverless — ele lida com atomicidade do Redis e sliding window nativamente
  • Implemente rate limiting como middleware — aplique globalmente, sobrescreva por rota com limites mais rigorosos
  • Para Next.js: faça rate limiting em middleware.ts ou manipuladores de rota da API, não em componentes React
  • Separe limites por camada: free, pro, enterprise — armazene a camada no JWT ou em consulta ao banco de dados
  • Registre hits de rate limit com a identidade do chamador — detecte padrões de abuso cedo

Padrões

// Padrão Upstash serverless
import { Ratelimit } from "@upstash/ratelimit";
import { Redis } from "@upstash/redis";

const ratelimit = new Ratelimit({
  redis: Redis.fromEnv(),
  limiter: Ratelimit.slidingWindow(10, "10 s"),
  analytics: true,
});

const { success, limit, remaining, reset } = await ratelimit.limit(identifier);

Evite

  • Rate limiting em memória em configurações serverless ou multi-instância — o estado é perdido entre invocações
  • Rate limiting apenas na camada de aplicação — adicione limites na CDN/edge também (Cloudflare, Vercel)
  • Bloquear usuários legítimos com limites excessivamente agressivos — comece permissivo, aperte com base em dados
  • Esquecer de limitar webhooks e envios de formulários públicos

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

YepAPI/skills

WCAG 2.1 AA — semantic HTML, keyboard navigation, screen readers.

YepAPI/skills

Experiment setup, variant splitting, statistical significance, and feature flag integration.

YepAPI/skills

CRUD generators, data tables, user management, role-based access, and bulk operations.

YepAPI/skills

Monitor what ChatGPT and Gemini say about your brand using YepAPI.

YepAPI/skills

Queue workers with BullMQ/Inngest/Trigger.dev, job retries, dead letter queues, concurrency.

YepAPI/skills

Commander.js, interactive prompts with Clack, spinners, colors, config files, exit codes, and npm publishing.

YepAPI/skills

cmdk integration, Cmd+K trigger, fuzzy search, grouped actions, keyboard navigation, and dynamic action registration.

YepAPI/skills

Content planning with trend and sentiment data from YepAPI.

YepAPI/skills

Content calendar, keyword-driven planning, and content briefs.

YepAPI/skills

Theme switching with CSS variables, system preference detection, next-themes, and persistence.

YepAPI/skills

Threaded comments, @mentions, reactions, moderation queue, optimistic UI, and cursor pagination.

YepAPI/skills

Competitive analysis between domains using YepAPI.

YepAPI/skills

Layout grids, KPI cards, data tables with sorting/filtering, sidebar navigation, and responsive breakpoints.

YepAPI/skills

Data encryption — TLS everywhere, AES-256-GCM for PII, bcrypt passwords, encrypted backups.

YepAPI/skills

Chart patterns with Recharts/Nivo/D3, responsive containers, color scales, and accessibility.

YepAPI/skills

Drizzle schema definition, push vs migrate, type-safe queries, relations, transactions, and prepared statements.

YepAPI/skills

Upload handling, resize/compress, CDN delivery, blur placeholders, and next/image patterns.

YepAPI/skills

Local business and Google Maps research using YepAPI.

YepAPI/skills

Cursor-based pagination, IntersectionObserver, virtualized lists with @tanstack/react-virtual, and scroll position restoration.

YepAPI/skills

Chat UI components, streaming responses with AI SDK, context window management, and RAG patterns.

Habilidades Relacionadas