Receber por email
← Voltar para o catálogo

api-response-optimization

Optimizes API performance through payload reduction, caching strategies, and compression techniques. Use when improving API response times, reducing bandwidth usage, or implementing efficient caching.

178estrelas
Atualizado há 5 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add secondsky/claude-skills

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/api-response-optimization/svg)](https://www.skillteca.com.br/skills/api-response-optimization)

Alerta por categoria

Receba novas skills de Design e Frontend toda segunda

1 email curto, só com as skills novas de Design e Frontend. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

API Response Optimization

Reduce payload sizes, implement caching, and enable compression for faster APIs.

Sparse Fieldsets

// Allow clients to select fields: GET /users?fields=id,name,email
app.get('/users', async (req, res) => {
  const fields = req.query.fields?.split(',') || null;
  const users = await User.find({}, fields?.join(' '));
  res.json(users);
});

HTTP Caching Headers

app.get('/products/:id', async (req, res) => {
  const product = await Product.findById(req.params.id);
  const etag = crypto.createHash('md5').update(JSON.stringify(product)).digest('hex');

  if (req.headers['if-none-match'] === etag) {
    return res.status(304).end();
  }

  res.set({
    'Cache-Control': 'public, max-age=3600',
    'ETag': etag
  });
  res.json(product);
});

Response Compression

const compression = require('compression');

app.use(compression({
  filter: (req, res) => {
    if (req.headers['x-no-compression']) return false;
    return compression.filter(req, res);
  },
  level: 6  // Balance between speed and compression
}));

Performance Targets

| Metric | Target | |--------|--------| | Response time | <100ms (from 500ms) | | Payload size | <50KB (from 500KB) | | Server CPU | <30% (from 80%) |

Optimization Checklist

  • [ ] Remove sensitive/unnecessary fields from responses
  • [ ] Implement sparse fieldsets
  • [ ] Add ETag/Last-Modified headers
  • [ ] Enable gzip/brotli compression
  • [ ] Use pagination for collections
  • [ ] Eager load to prevent N+1 queries
  • [ ] Monitor with APM tools

Best Practices

  • Cache immutable resources aggressively
  • Use short TTL for frequently changing data
  • Invalidate cache on writes
  • Compress responses >1KB
  • Profile before optimizing
Compartilhar X LinkedIn