Payload compression for REST APIs in API Gateway
API Gateway allows your client to call your API with compressed payloads by using one of the supported content codings. By default, API Gateway supports decompression of the method request payload. However, you must configure your API to enable compression of the method response payload.
To enable compression on an API
, set the minimumCompressionsSize
property to a non-negative integer
between 0 and 10485760 (10M bytes) when you create the API or after you've created the API.
To disable compression on the API, set the minimumCompressionSize
to null or
remove it altogether. You can enable or disable compression for an API by using the API Gateway
console, the AWS CLI, or the API Gateway REST API.
If you want the compression applied on a payload of any size, set the
minimumCompressionSize
value to zero. However, compressing data of a small
size might actually increase the final data size. Furthermore, compression in API Gateway and
decompression in the client might increase overall latency and require more computing times.
You should run test cases against your API to determine an optimal value.
The client can submit an API request with a compressed payload and an appropriate
Content-Encoding
header for API Gateway to decompress and apply applicable mapping templates, before
passing the request to the integration endpoint. After the compression is enabled and the API is deployed, the
client can receive an API response with a compressed payload if it specifies an appropriate
Accept-Encoding
header in the method request.
When the integration endpoint expects and returns uncompressed JSON payloads, any mapping template that's configured for an uncompressed JSON payload is applicable to the compressed payload. For a compressed method request payload, API Gateway decompresses the payload, applies the mapping template, and passes the mapped request to the integration endpoint. For an uncompressed integration response payload, API Gateway applies the mapping template, compresses the mapped payload, and returns the compressed payload to the client.