

# Receber uma resposta da API com uma payload compactada no API Gateway
<a name="api-gateway-receive-response-with-compressed-payload"></a>

Ao fazer uma solicitação em uma API habilitada para compactação, o cliente pode optar por receber uma carga de resposta compactada de um determinado formato especificando um cabeçalho `Accept-Encoding` com uma [codificação de conteúdo compatível](api-gateway-enable-compression.md#api-gateway-supported-content-encodings). 

O API Gateway só compacta a carga de resposta quando as seguintes condições são atendidas:
+  A solicitação de entrada tem o cabeçalho `Accept-Encoding` com uma codificação e formato de conteúdo compatíveis. 
**nota**  
Se o cabeçalho não estiver configurado, o valor padrão será `*` conforme definido na [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.4). Nesse caso, o API Gateway não compacta a carga. Algum navegador ou cliente pode adicionar `Accept-Encoding` (por exemplo, `Accept-Encoding:gzip, deflate, br`) automaticamente para solicitações habilitadas para compactação. Isso pode ativar a compactação de carga útil no API Gateway. Sem uma especificação explícita dos valores de cabeçalho `Accept-Encoding` compatíveis, o API Gateway não compacta a carga. 
+  A definição de `minimumCompressionSize` na API habilita a compactação.
+  A resposta de integração não tem um cabeçalho `Content-Encoding`. 
+  O tamanho da carga da resposta de integração, após a aplicação do modelo de mapeamento adequado, é maior ou igual ao valor especificado em `minimumCompressionSize`.

O API Gateway aplica qualquer modelo de mapeamento que estiver configurado para a resposta de integração antes de compactar a carga. Se a resposta de integração contiver um cabeçalho `Content-Encoding`, para o API Gateway, a carga da resposta de integração já estará compactada, e o processamento de compactação será ignorado.

Como exemplo, veja a API PetStore e a seguinte solicitação:

```
GET /pets
Host: {petstore-api-id}.execute-api.{region}.amazonaws.com
Accept: application/json
```

O backend responde à solicitação com uma carga JSON não compactada que é semelhante à seguinte:

```
200 OK

[
  { 
    "id": 1, 
    "type": "dog", 
    "price": 249.99 
  }, 
  { 
    "id": 2, 
    "type": "cat", 
    "price": 124.99 
  }, 
  { 
    "id": 3, 
    "type": "fish", 
    "price": 0.99 
  } 
]
```

Para receber essa saída como uma carga compactada, o cliente da API pode enviar uma solicitação como esta:

```
GET /pets
Host: {petstore-api-id}.execute-api.{region}.amazonaws.com
Accept-Encoding:gzip
```

O cliente recebe a resposta com um cabeçalho `Content-Encoding` e a carga codificada por GZIP semelhante a esta: 

```
200 OK
Content-Encoding:gzip
...

���RP�

J�)JV
�:P^IeA*������+(�L	�X�YZ�ku0L0B7!9��C#�&����Y��a���^�X
```

Quando a carga de resposta é compactada, a cobrança pela transferência de dados leva em conta apenas o tamanho dos dados compactados.