# Como trabalhar com requisições de payloads superiores a 5MB

Ambos os triggers [**REST**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/triggers/web-protocols/rest) e [**HTTP**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/triggers/web-protocols/http) tem um limite de payload de 5MB. Se esse limite for atingido, a Plataforma retorna o status HTTP "413" com a seguinte mensagem:

```json
{
    "message": "Request size limit exceeded"
}
```

Abaixo há um passo a passo com um método alternativo para trabalhar com requisições que excedem o limite de payload.

## Passo a passo para trabalhar com requisições superiores a 5MB

{% stepper %}
{% step %}

### Utilize o HTTP File Trigger

Você pode utilizar o [**HTTP File Trigger**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/triggers/web-protocols/http-file) para processar payloads maiores que 5MB enviando os dados como um arquivo.

Especifique o tipo de conteúdo apropriado para o seu arquivo em **Body Upload** e **Response Content-Types**. Neste exemplo, o valor é `application/json`, mas também pode ser outros formatos, como `application/pdf` ou `application/jpeg`.

<figure><img src="https://content.gitbook.com/content/3ANg0NQQeslB7Og5K7Ah/blobs/hDJBFh47BYNs8CoBGcZi/HTTP%20File%20Trigger.png" alt=""><figcaption></figcaption></figure>

Após receber o payload com o **HTTP File Trigger**, você pode acessar a página **Monitor** para ver os [**Detalhes da Execução**](https://app.gitbook.com/s/cO0A6g1dOsu8BiHYqO67/development-cycle/dashboards/completed-executions). Perceba que o payload é recebido como um arquivo e não no corpo da requisição. Neste contexto, o corpo da requisição está vazio.

<figure><img src="https://content.gitbook.com/content/3ANg0NQQeslB7Og5K7Ah/blobs/2XltP9k1AJIno0QfLn2Q/image1.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/3ANg0NQQeslB7Og5K7Ah/blobs/XQ6HsSbEsPg10XbqnlpV/image3.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### **Salve os dados de input no conector Session Management**

É necessário fazer um tratamento especial no fluxo para acessar o arquivo. Uma abordagem comum é salvar os dados de input da requisição em um conector [**Session Management**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/structured-data/session-management), preservando detalhes como `Headers` e `QueryAndPath`.

<figure><img src="https://content.gitbook.com/content/3ANg0NQQeslB7Og5K7Ah/blobs/BqeqVeS9Ej3rWPwIA0Bn/Session%20Management%20connector.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Converta a string em JSON

Utilize o conector [**File Reader**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/files/file-reader) para ler o arquivo e convertê-lo em uma string JSON. Em seguida, aplique a [função Double Braces `TOJSON`](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/double-braces/double-braces-functions#de-json) para transformá-la em um objeto JSON.

Neste exemplo, a conversão é realizada no conector [**JSON Generator**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/tools/json-generator), nomeado “TOJSON data”, conforme ilustrado na imagem abaixo.

<figure><img src="https://content.gitbook.com/content/3ANg0NQQeslB7Og5K7Ah/blobs/gn76ceyJ8xA9YXeuvMAD/JSON%20Generator%20(Mock).png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Configure a resposta do pipeline

Assim que você obter o payload desejado, é necessário preparar a resposta do pipeline. Você pode retornar um arquivo `.json` ou em um objeto JSON.

Para gerar o arquivo, utilize o conector [**File Writer**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/files/file-writer):&#x20;

<figure><img src="https://content.gitbook.com/content/3ANg0NQQeslB7Og5K7Ah/blobs/xoaop2TcNahR56Tm31mI/File%20Writer.png" alt=""><figcaption></figcaption></figure>

Alternativamente, você pode utilizar o conector [**JSON Generator**](https://app.gitbook.com/s/SKBJ6ZiEWBU93x170HH4/connectors/tools/json-generator) para estruturar e fornecer a resposta final, como demonstrado no seguinte exemplo:

<figure><img src="https://content.gitbook.com/content/3ANg0NQQeslB7Og5K7Ah/blobs/vDEyDypdbvIeHaQ5q3Z8/JSON%20Generator%20(Mock)%20-%20Response.png" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}
