Rendimiento cache y rate limiting
El rendimiento de una API no depende solo del codigo. Tambien depende del contrato, la paginacion, la cache y los limites.
Evitar respuestas gigantes
Toda lista debe tener limite.
txt
GET /orders?limit=50Define un maximo:
txt
limit <= 100Cache HTTP
Headers utiles:
txt
Cache-Control: public, max-age=60
ETag: "abc123"Con ETag:
txt
If-None-Match: "abc123"
304 Not ModifiedCache privada
Para datos de usuario:
txt
Cache-Control: private, max-age=30No caches informacion sensible en caches compartidas.
Compresion
Usa gzip o brotli para respuestas grandes, especialmente JSON.
Rate limiting
Protege la API de abuso o errores de clientes:
txt
429 Too Many Requests
Retry-After: 60Define limites por IP, usuario, API key o endpoint critico.
Timeouts
Toda llamada externa debe tener timeout. Una API sin timeouts puede agotar recursos muy rapido.
Checklist
- Las listas tienen limite maximo.
- Los endpoints cacheables usan headers.
- Hay compresion.
- Hay rate limiting.
- Las dependencias tienen timeouts.
- Se monitoriza latencia p95 y p99.
