---
title: Parametrizações
slug: parametrizacoes
description: Looking for resources on an advanced topic? This document is your one-stop solution! It offers a comprehensive compilation of links to various resources including a language framework, rules, and a handy template. Dive into this wealth of information to e
docTags: 
createdAt: 2023-05-03T13:57:09.000Z
---

## Sintaxe Fluid

A sintaxe utilizada pela Fluid para criação/parametrização dos fluxos é simples e intuitiva. Para acesso a dados, seja do evento disparado para executar o fluxo ou para acessar os dados de um passo anterior, veja a seguir:

### Dados de entrada no disparo ao fluxo

Para acessar tanto o JSON do *body/payload* de entrada do disparo do fluxo quanto as demais informações, utilize o `.input`:

- `.input.body`

  &#x20;é usado para acessar o JSON do payload de entrada.
- `.input.headers`

  é usado para acessar os cabeçalhos enviados no disparo ao [Gateway Fluid](docId\:TlDEO0voi8XWT2Iqj7OiV).
- `.input.query_params`

  usado para acessar os parametros de *query* enviados no disparo ao [Gateway Fluid](docId\:TlDEO0voi8XWT2Iqj7OiV).

### Resultados de passos do próprio fluxo

Para acessar os dados resultantes da execução de um passo do fluxo, utilize a sintaxe `.steps.<nome_do_passo>`:

- Para acessar o resultado de um passo específico, utilize&#x20;
  `.steps.<nome_do_passo>.body`
- Para headers resultantes de um passo, use****
  `.steps.<nome_do_passo>.headers`
- Para o código (ex: HTTP Status Code) resultantes de um passo, use****
  `.steps.<nome_do_passo>.code`

## Exemplo de uso detalhado

Considere um exemplo prático onde um fluxo é disparado via [Gateway Fluid](docId\:TlDEO0voi8XWT2Iqj7OiV) com a seguinte URL e JSON de entrada (*payload*):

[`https://gtw.fluidapi.io/tenant/v2/flows/insere-produto?key=123&cod_cliente=2`](https://gtw.fluidapi.io/tenant/v2/flows/insere-produto?key=123\&cod_cliente=2)

```json
{
  "payload_campo_1": "valor do payload de entrada",
  "payload_campo_2": {
    "msg": "valor do payload de entrada"
  }
}
```

Considere que um passo chamado `passo_1` tenha gerado o seguinte resultado:

```json
{
  "campo_1": "resultado do campo 1",
  "campo_2": "resultado do campo 2"
}
```

### Acesso aos dados de entrada

Na última versão `3.0`, a sintaxe visa refletir a origem dos dados, utilizando `.input`para acessar os dados do *payload* de entrada e `.steps` para acessar os resultados dos passos.

A sintaxe para recuperar o campo `payload_campo_1` do *body* do webhook/evento de entrada/disparo do fluxo é:

```go
{{.input.body.payload_campo_1}}
```

### Acesso *Headers* e *Query parameters* do payload de entrada

É possível acessar os headers utilizando `.input.headers` e os *query parameters&#x20;*&#x75;tilizando `.input.query_params`.

**Exemplo para acessar os headers:**

```go
{{.input.headers | toJson}}
```

Ou para acessar diretamente um *header* específico:

```go
{{.input.headers.Authorization}}
```

:::hint{type="info"}
Caso o *header* (ou nome do passo, *query param*, etc) contenha algum caractere especial como hífen `-`, acesse com a seguinte sintaxe:
:::

```go
{{index .input.headers "Content-Type"}}
```

**Exemplo para acessar os query parameters:**

```go
{{.input.query_params}}
```

Ou acessar um parâmetro específico:

```go
{{.input.query_params.cod_cliente}}
```

### Acesso ao resultado de um passo do fluxo

Para acessar o *body* do resultado de um passo adotamos a sintaxe com `.steps.<nome_do_passo>.body`:

```go
{{.steps.passo_1.body}}
```

Para acessar um resultado específico (`campo_x`) dentro do resultado do `passo_1`, utilize:&#x20;

```go
{{.steps.passo_1.body.campo_x}}
```

### Acesso *Headers* e *Query parameters* do passo

Da mesma forma, é possível utilizar os dados para ter acesso aos headers utilizando `.steps.<nome_do_passo>.headers` e os *query parameters* utilizando `.steps.<nome_do_passo>.query_params` em um passo.

**Exemplo para acessar os headers de um passo:**

```go
{{.steps.passo_1.headers | toJson}}
```

Ou:

```go
{{index .input.headers "Content-Type"}}
```

**Exemplo para acessar os query parameters:**

```go
{{.steps.passo_1.query_params}}
```

Ou:

```go
{{.steps.passo_1.query_params.cod_cliente}}
```

***

## Migração da sintaxe antiga

:::hint{type="info"}
Para os usuários que já criaram fluxos utilizando a antiga sintaxe com `.state`, siga o guia de migração documentado em: [Migração de sintaxe v2 para v3](docId:7DfxtAAavUfSiSw228YqD)
:::

***

## Demais guias de sintaxe para fluxos

[Avançado](docId:2ajQtfZCKmMN-I-WIOp5w)

[De/para](docId\:VOQdaUkjjknbSWVRHbzQW)

[Fluid Expression Language](docId:0VQVPw6saqz2z1jGp8FwC)

[Rules](docId\:lgqSmyrXokYm9hGjtOtKL)

[Template](docId\:TReaJH8tvdyh6uKYEAQZP)

