mcpField
A
api-response-optimization

api-response-optimization

github.com/secondskyDevelopment242429 installsUpdated 5w ago
Repository

About api-response-optimization

A development skill for reducing API response payloads and improving delivery efficiency. It covers sparse fieldsets, HTTP caching headers, and response compression.

Key features

  1. 01Client-selected response fields
  2. 02ETag-based conditional responses
  3. 03HTTP response compression
  4. 04Caching and pagination practices

Use cases

  1. 01Reducing fields returned to clients
  2. 02Avoiding repeated transfer of unchanged data
  3. 03Compressing large API responses

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/secondsky/claude-skills --skill api-response-optimization

After installing, type/api-response-optimizationin Claude Code to confirm it loaded.

Details

From the project README

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

MetricTarget
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

Comments

Markdown supported