API响应优化 api-response-optimization

API响应优化技能专注于通过减少负载大小、实施缓存策略和启用压缩来提升API性能,旨在改善响应时间、降低带宽使用并实现高效缓存,适用于后端开发和系统优化场景。关键词:API优化、响应时间、缓存、压缩、性能提升。

后端开发 0 次安装 0 次浏览 更新于 3/8/2026

name: API响应优化 description: 通过减少负载、缓存策略和压缩技术优化API性能。用于改善API响应时间、减少带宽使用或实现高效缓存。

API响应优化

减少负载大小,实现缓存,并启用压缩以获得更快的API。

稀疏字段集

// 允许客户端选择字段: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缓存头

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);
});

响应压缩

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  // 在速度和压缩之间平衡
}));

性能目标

指标 目标
响应时间 <100毫秒(从500毫秒)
负载大小 <50KB(从500KB)
服务器CPU <30%(从80%)

优化检查表

  • [ ] 从响应中移除敏感/不必要的字段
  • [ ] 实现稀疏字段集
  • [ ] 添加ETag/最后修改头
  • [ ] 启用gzip/brotli压缩
  • [ ] 对集合使用分页
  • [ ] 预加载以防止N+1查询
  • [ ] 使用APM工具监控

最佳实践

  • 积极缓存不可变资源
  • 对频繁变化的数据使用短TTL
  • 写入时使缓存无效
  • 压缩响应>1KB
  • 优化前进行性能分析