Description
This is a feature request for two options enabling support for gzip compression for the generated API clients for all languages.
The first option would enable support for compression in API requests. When this option is turned on, the client would:
- Add
Content-Encoding: gzip to the HTTP request headers
- Compress the HTTP request bodies using gzip
The second option would enable support for compression in API responses. When this option is turned on, the client would:
- Add
Accept-Encoding: gzip to the HTTP request headers
- Decompress the bodies of HTTP responses with a response header of
Content-Encoding: gzip
Ideally, both options would be on by default.
Related issues
#3279 discusses how to add gzip support to the Java API.
Suggest a Fix
For some languages, this won't be possible. For example, the JavaScript API presumably uses XmlHttpRequest behind the scenes when running in the browser, and the spec won't let you set encoding-related headers.
For other languages, though, this should be fairly straightforward. For example, in Java, adding support for GZIP compression for API requests and responses in the Jersey 1.x client consists of simply adding:
client.addFilter(new GZIPContentEncodingFilter());
to the rebuildHttpClient function in ApiClient.java. Passing in the parameter false to the constructor would enable it only for responses. Simply encapsulate this behaviour behind a couple of properties and you're done!
Description
This is a feature request for two options enabling support for gzip compression for the generated API clients for all languages.
The first option would enable support for compression in API requests. When this option is turned on, the client would:
Content-Encoding: gzipto the HTTP request headersThe second option would enable support for compression in API responses. When this option is turned on, the client would:
Accept-Encoding: gzipto the HTTP request headersContent-Encoding: gzipIdeally, both options would be on by default.
Related issues
#3279 discusses how to add gzip support to the Java API.
Suggest a Fix
For some languages, this won't be possible. For example, the JavaScript API presumably uses XmlHttpRequest behind the scenes when running in the browser, and the spec won't let you set encoding-related headers.
For other languages, though, this should be fairly straightforward. For example, in Java, adding support for GZIP compression for API requests and responses in the Jersey 1.x client consists of simply adding:
client.addFilter(new GZIPContentEncodingFilter());to the
rebuildHttpClientfunction in ApiClient.java. Passing in the parameterfalseto the constructor would enable it only for responses. Simply encapsulate this behaviour behind a couple of properties and you're done!