Communitygithub.com

Ratenbegrenzung (YepAPI/skills)

Token-Bucket, Sliding Window, Limits pro Benutzer/IP, Redis-gestützt, Upstash-Muster.

Was ist skills)?

Dieses Skill implementiert eine umfassende Ratenbegrenzung für API-Endpunkte und Auth-Routen. Es nutzt Token-Bucket für API-Endpunkte und Sliding Window für Auth/Login-Routen, um einen effizienten Schutz vor Missbrauch zu gewährleisten. Die Identifizierung der Aufrufer erfolgt zuerst über API-Schlüssel, als Fallback über die IP-Adresse – bei authentifizierten Routen wird jedoch niemals nur die IP verwendet. Bei Überschreitung der Grenzwerte wird ein `429 Too Many Requests`-Status mit den Headern `Retry-After` und `X-RateLimit-Remaining` zurückgegeben. Die Zähler werden in Redis (oder Upstash für serverlose Umgebungen) gespeichert, um Konsistenz über mehrere Instanzen hinweg sicherzustellen. Das Skill unterstützt standardmäßig 100 req/min für allgemeine APIs, 5 req/min für Auth und 1000 req/min für Lesezugriffe und kann als Middleware global oder pro Route angewendet werden. Es ist für Next.js optimiert und trennt Limits nach Tarifen (Free, Pro, Enterprise), die im JWT oder per Datenbankabfrage gespeichert werden. Zusätzlich werden Ratenbegrenzungsereignisse protokolliert, um frühe Missbrauchsmuster zu erkennen.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Ratenbegrenzung

Regeln

  • Verwende Token Bucket für API-Endpunkte, Sliding Window für Auth/Login-Routen
  • Identifiziere Aufrufer zuerst über API-Key, Fallback auf IP – niemals nur mit IP bei authentifizierten Routen
  • Gib 429 Too Many Requests mit Retry-After-Header (Sekunden) und X-RateLimit-Remaining-Header zurück
  • Speichere Zähler in Redis (oder Upstash für Serverless) – niemals im lokalen Speicher bei Multi-Instanz-Bereitstellungen
  • Setze sinnvolle Standardwerte: 100 req/min für allgemeine API, 5 req/min für Auth, 1000 req/min für Lesevorgänge
  • Verwende @upstash/ratelimit für Serverless – es kümmert sich nativ um Redis-Atomizität und Sliding Window
  • Implementiere Ratenbegrenzung als Middleware – global anwenden, pro Route mit strengeren Limits überschreiben
  • Für Next.js: Ratenbegrenzung in middleware.ts oder API-Route-Handlern, nicht in React-Komponenten
  • Trenne Limits nach Tarifen: Free, Pro, Enterprise – speichere Tarif im JWT oder per Datenbankabfrage
  • Protokolliere Ratenbegrenzungsereignisse mit Aufruferidentität – erkenne frühzeitig Missbrauchsmuster

Muster

// Upstash Serverless-Muster
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);

Zu vermeiden

  • Ratenbegrenzung im lokalen Speicher in Serverless- oder Multi-Instanz-Setups – Zustand geht zwischen Aufrufen verloren
  • Ratenbegrenzung nur auf Anwendungsebene – füge auch CDN/Edge-Limits hinzu (Cloudflare, Vercel)
  • Blockieren legitimer Benutzer mit zu strengen Limits – starte großzügig, verschärfe basierend auf Daten
  • Vergiss nicht, Webhooks und öffentliche Formularübermittlungen zu begrenzen

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.

Verwandte Skills