# Como utilizar o Form Data

O "**Form Data"** é um recurso para enviar dados complexos e arquivos em aplicações REST. Ele é utilizado principalmente quando há necessidade de enviar múltiplos tipos de dados (como texto, números e arquivos) em uma única requisição, facilitando a integração com APIs que requerem dados em formatos específicos.

Para criar um "**Form Data"**, siga os seguintes passos:

1. Crie um módulo do tipo REST.
2. Em seguida, clique em "**Nova operação**". Preencha os dados de "**Informações gerais**" e "**Parâmetros**".
3. A etapa de configuração da aba "**Requisição**" é crucial para o Form Data. Clique na aba "Header".
4. Observe que o **Skyone Studio** mostra um valor (application/json) automaticamente para a chave "**Context-Type**". Troque este valor por **multipart/form-data.**

![](/files/P6J6d9GID8Y0hYozEm7D)

5. Em seguida, na aba "Body", os parâmetros devem ser enviados como campos nomeados com seus respectivos valores, sendo diferente do padrão comumente adotado. Esta ação é essencial para que o **Skyone Studio** possa ler e interpretar os dados corretamente.

O formato a ser utilizado no "Body" é:

```
key:value:type:filename
```

Sendo que:

* **key**: nome da chave do Form Data.
* **value**: valor em texto ou base64.
* **type (opcional)**: tipo de valor (mime type). Leia mais nas sugestões de leitura no final da página.
* **filename (opcional)**: nome do arquivo, aplicável quando o valor estiver em base64. As APIs que recebem esse dado utilizam o **filename** para gerar o arquivo correspondente.

{% hint style="warning" %}
Se optar por usar o **filename**, é necessário incluir o **type**.
{% endhint %}

{% hint style="info" %}
Entre uma chave e outra é necessário adicionar quebra de linha;
{% endhint %}

#### Exemplo de body <a href="#exemplo-de-body" id="exemplo-de-body"></a>

Em um cenário onde normalmente enviamos um JSON no body das requisições do **Skyone Studio** teríamos algo como o exemplo abaixo:

```
{
  "file": "base64",
  "action": "save",
  "user": "549875414515"
}
```

Como dito antes, o body no form data funciona de forma diferente onde seguindo os passos da regra de montagem teríamos algo do tipo:&#x20;

```
file: base64
action:save
user:549875414515
```

{% hint style="info" %}
O **Skyone Studio** não trabalha com JSON no form-data
{% endhint %}

![Exemplo de inserção de dados no Body](/files/8LLuhs9dOud6dfnmKLpz)

{% hint style="warning" %}
O **Skyone Studio** não processa arquivos diretamente. Qualquer arquivo enviado será em uma base64. Essa string será, então, processada pelo **Skyone Studio**, facilitando o envio de arquivos como imagens e documentos.
{% endhint %}

6. Finalize as etapas da criação do módulo.
7. Pronto! Já é possível usar este módulo no seu fluxo de integração.

#### **Sugestões de leitura:**

* <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type>
* <https://developer.mozilla.org/en-US/docs/Glossary/MIME_type>
* &#x20;<https://www.iana.org/assignments/media-types/media-types.xhtml>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.skyone.cloud/skyone-studio/how-to/como-utilizar-o-form-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
