Vynucení Gzip komprese na vybraných endpointech
Jako milovník
Viz Slack 🧵 https://golemiocz.slack.com/archives/C01ED9606VC/p1715236200293339
Akceptační kritéria
- Následující EP vždy vrací gzipované odpovědi, i když v požadavku chybí hlavička
Accept-Encoding
- /vehiclepositions
- /vehiclepositions/{gtfsTripId}
- /public/gtfs/trips/{gtfsTripId}
- /public/vehiclepositions
- /public/vehiclepositions/{vehicleId}
- /public/vehiclepositions/{vehicleId}{gtfsTripId}
- /public/departureboards
- Zmíněno v implementační a API dokumentaci
- Lze se opt out -
accept-encoding: identity
Implementační poznámky
- Akceptuje
@seniorvyvojar
, ROPID a někdo za PIDL - Konzultace @danknotek @sinacek
- Odpověď VP (bez komprese) 669 kB
curl -o /dev/null -s https://api.golemio.cz/v2/public/vehiclepositions -w '%{size_download}' | numfmt --to=iec
669K
- Odpověď VP (s kompresí) 67 kB - tedy zmenšení průtoku dat o 90 procent
curl -o /dev/null -s https://api.golemio.cz/v2/public/vehiclepositions -w '%{size_download}' -H 'Accept-encoding: gzip' | numfmt --to=iec
67K
- Používáme
compression
middleware s default nastavením globálně přímo ve službě - viz https://gitlab.com/operator-ict/golemio/code/vp/output-gateway/-/blob/release/src/App.ts?ref_type=heads#L148
Edited by Dan Knotek