

# Habilitar a compactação de payload para uma API no API Gateway
<a name="api-gateway-enable-compression"></a>

É possível habilitar a compactação para uma API usando o console do API Gateway, a AWS CLI ou um SDK da AWS.

Para uma API existente, implante a API depois de habilitar a compactação, para que a alteração entre em vigor. Para uma nova API, você pode implantar a API depois que a configuração da API for concluída.

**nota**  
A codificação de conteúdo com a prioridade mais alta deve ser aquela compatível com o API Gateway. Se não for, a compactação não será aplicada à carga da resposta.

**Topics**
+ [Habilitar a compactação de carga para uma API usando o console do API Gateway](#api-gateway-enable-compression-console)
+ [Habilitar a compactação de carga útil para uma API usando a AWS CLI](#api-gateway-enable-compression-cli)
+ [Codificação de conteúdo compatível com o API Gateway](#api-gateway-supported-content-encodings)

## Habilitar a compactação de carga para uma API usando o console do API Gateway
<a name="api-gateway-enable-compression-console"></a>

O procedimento a seguir descreve como habilitar a compactação de carga para uma API. 

**Como habilitar a compactação de carga usando o console do API Gateway**

1. Inicie uma sessão no console do API Gateway em [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Escolha uma API existente ou crie uma nova.

1. No painel de navegação principal, selecione **Configurações da API**. 

1. Na seção **Detalhes da API**, escolha **Editar**.

1. Ative a **Codificação de conteúdo** para habilitar a compactação da carga útil. Em **Tamanho mínimo do corpo**, insira um número para o tamanho da compactação (em bytes). Para desativar a compactação, desative a opção **Codificação de conteúdo**.

1. Escolha **Salvar alterações**.

## Habilitar a compactação de carga útil para uma API usando a AWS CLI
<a name="api-gateway-enable-compression-cli"></a>



O comando [create-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-rest-api.html) indicado abaixo cria uma API com compactação de carga útil:

```
aws apigateway create-rest-api \
    --name "My test API" \
    --minimum-compression-size 0
```

O comando [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html) indicado abaixo habilita a compactação de carga útil para uma API existente:

```
aws apigateway update-rest-api \
    --rest-api-id 1234567890 \
    --patch-operations op=replace,path=/minimumCompressionSize,value=0
```

A propriedade `minimumCompressionSize` tem um valor inteiro não negativo entre 0 e 10485760 (10 milhões de bytes). Ela mede o limite de compactação. Se o tamanho da carga útil é menor do que esse valor, a compactação ou descompactação não são aplicadas na carga. Ao configurar para zero, a compactação pode ser definida para qualquer tamanho da carga útil.

O comando [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html) indicado abaixo desativa a compactação de carga útil:

```
aws apigateway update-rest-api \
    --rest-api-id 1234567890 \
    --patch-operations op=replace,path=/minimumCompressionSize,value=
```

Você também pode definir `value` como uma string vazia `""` ou omitir a propriedade `value` completamente na chamada anterior.

## Codificação de conteúdo compatível com o API Gateway
<a name="api-gateway-supported-content-encodings"></a>

O API Gateway é compatível com as seguintes codificações de conteúdo:
+ `deflate`
+ `gzip`
+ `identity`

O API Gateway também é compatível com o formato de cabeçalho `Accept-Encoding` a seguir, de acordo com a especificação [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.4):
+ `Accept-Encoding:deflate,gzip`
+ `Accept-Encoding:`
+ `Accept-Encoding:*`
+ `Accept-Encoding:deflate;q=0.5,gzip;q=1.0`
+ `Accept-Encoding:gzip;q=1.0,identity;q=0.5,*;q=0`