Skip to content

feat: API response compression & payload optimization#562

Open
alexchenai wants to merge 1 commit intorohitdash08:mainfrom
alexchenai:feat/response-compression-129
Open

feat: API response compression & payload optimization#562
alexchenai wants to merge 1 commit intorohitdash08:mainfrom
alexchenai:feat/response-compression-129

Conversation

@alexchenai
Copy link

Summary

/claim #129

Adds gzip/deflate middleware and JSON payload optimization to reduce network overhead.

Features

  • After-request middleware: auto-compresses responses >1KB when client supports gzip/deflate
  • Varies on Accept-Encoding header
  • strip_null_fields: recursively removes None values from JSON responses
  • filter_fields: sparse fieldsets via ?fields=id,name (dot notation for nested)
  • optimize_payload: combined utility for clean payloads
  • @compress_response decorator for per-endpoint use
  • init_compression(app) for global registration in app factory

Endpoints

  • POST /insights/compression/analyze: measure gzip/deflate savings for any payload
  • POST /insights/compression/optimize: apply optimization and show savings %

Tests

  • 15 unit tests: gzip round-trip, deflate, null stripping, field filtering

/claim rohitdash08#129

Add gzip/deflate middleware plus payload optimization utilities:
- After-request middleware: compresses responses >1KB when client supports gzip/deflate
- strip_null_fields: recursively removes None values from response dicts
- filter_fields: ?fields=id,name,amount for sparse fieldsets (dot notation supported)
- optimize_payload: combined strip+filter utility
- @compress_response decorator for per-endpoint compression
- POST /insights/compression/analyze: measure compression ratios for any payload
- POST /insights/compression/optimize: apply optimization and see savings %
- 15 unit tests: gzip round-trip, null stripping, field filtering, combined optimize
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant