> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aurora-ai.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Resposta

O bloco de Resposta é o passo final no seu fluxo de trabalho que formata e envia uma resposta estruturada às chamadas API. É como a declaração "return" para todo o seu fluxo de trabalho—empacota os resultados e os envia de volta.

<div className="flex justify-center my-6">
  <img src="https://mintcdn.com/aruroraai/ZEdOsJiaQfygoyWq/images/response.png?fit=max&auto=format&n=ZEdOsJiaQfygoyWq&q=85&s=44856b4ec3b7e44633e77081be42e066" alt="API" width="337" height="540" data-path="images/response.png" />
</div>

<Callout type="info">
  Os blocos de resposta são blocos terminais - finalizam a execução do fluxo de
  trabalho e não podem se conectar a outros blocos.
</Callout>

## Visão geral

O bloco de Resposta permite:

<Steps>
  <Step>
    <strong>Formatar respostas API</strong>: Estruturar os resultados do fluxo
    de trabalho em respostas HTTP adequadas
  </Step>

  <Step>
    <strong>Estabelecer códigos de status</strong>: Configurar códigos de status
    HTTP apropriados de acordo com os resultados do fluxo de trabalho
  </Step>

  <Step>
    <strong>Controlar cabeçalhos</strong>: Adicionar cabeçalhos personalizados
    para respostas API e webhooks
  </Step>

  <Step>
    <strong>Transformar dados</strong>: Converter variáveis do fluxo de trabalho
    em formatos de resposta amigáveis ao cliente
  </Step>
</Steps>

## Como funciona

O bloco de Resposta finaliza a execução do fluxo de trabalho:

<Steps>
  <Step>
    {" "}

    **Recopilar dados** - Reúne variáveis e saídas de blocos anteriores
  </Step>

  <Step>
    {" "}

    **Formatar resposta** - Estrutura os dados de acordo com sua configuração
  </Step>

  <Step>
    {" "}

    **Estabelecer detalhes HTTP** - Aplica códigos de status e cabeçalhos
  </Step>

  <Step>
    {" "}

    **Enviar resposta** - Retorna a resposta formatada ao solicitante da API
  </Step>
</Steps>

## Quando você precisa de blocos de resposta

* **Endpoints API**: Quando seu fluxo de trabalho é chamado via API, os blocos de Resposta formatam os dados de retorno
* **Webhooks**: Retornam confirmação ou dados ao sistema que realiza a chamada
* **Testes**: Ver resultados formatados ao testar seu fluxo de trabalho

## Duas formas de construir respostas

### Modo construtor (recomendado)

Interface visual para construir a estrutura de resposta:

* Arrastar e soltar campos
* Referenciar variáveis de fluxo de trabalho facilmente
* Visualização prévia visual da estrutura de resposta

### Modo editor (avançado)

Escrever JSON diretamente:

* Controle total sobre o formato de resposta
* Suporte para estruturas aninhadas complexas
* Usar sintaxe `<variable.name>` para valores dinâmicos

## Opções de configuração

### Dados de resposta

Os dados de resposta são o conteúdo principal que será enviado de volta ao solicitante da API. Devem estar formatados como JSON e podem incluir:

* Valores estáticos
* Referências dinâmicas a variáveis de fluxo de trabalho usando a sintaxe `<variable.name>`
* Objetos e arrays aninhados
* Qualquer estrutura JSON válida

### Código de status

Estabelece o código de status HTTP para a resposta. Os códigos de status comuns incluem:

<Tabs items={["Sucesso (2xx)", "Erro do cliente (4xx)", "Erro do servidor (5xx)"]}>
  <Tab>
    <ul>
      <li>
        <strong>200</strong>: OK - Resposta padrão de sucesso
      </li>

      <li>
        <strong>201</strong>: Criado - Recurso criado com sucesso
      </li>

      <li>
        <strong>204</strong>: Sem conteúdo - Sucesso sem corpo de resposta
      </li>
    </ul>
  </Tab>

  <Tab>
    <ul>
      <li>
        <strong>400</strong>: Solicitação incorreta - Parâmetros de solicitação
        inválidos
      </li>

      <li>
        <strong>401</strong>: Não autorizado - Autenticação necessária
      </li>

      <li>
        <strong>404</strong>: Não encontrado - O recurso não existe
      </li>

      <li>
        <strong>422</strong>: Entidade não processável - Erros de validação
      </li>
    </ul>
  </Tab>

  <Tab>
    <ul>
      <li>
        <strong>500</strong>: Erro interno do servidor - Erro do lado do
        servidor
      </li>

      <li>
        <strong>502</strong>: Gateway incorreto - Erro de serviço externo
      </li>

      <li>
        <strong>503</strong>: Serviço não disponível - Serviço temporariamente
        inativo
      </li>
    </ul>
  </Tab>
</Tabs>

<div className="mt-4 text-sm text-gray-600 dark:text-gray-400">
  O código de status padrão é 200 se não especificado.
</div>

### Cabeçalhos de resposta

Configure cabeçalhos HTTP adicionais para incluir na resposta.

Os cabeçalhos são configurados como pares chave-valor:

| Chave         | Valor            |
| ------------- | ---------------- |
| Content-Type  | application/json |
| Cache-Control | no-cache         |
| X-API-Version | 1.0              |

## Exemplos de casos de uso

### Resposta do endpoint da API

<div className="mb-4 rounded-md border p-4">
  <h4 className="font-medium">
    Cenário: Retornar dados estruturados de uma API de busca
  </h4>

  <ol>
    <li>
      O fluxo de trabalho processa a consulta de busca e recupera resultados
    </li>

    <li>O bloco de função formata e pagina os resultados</li>
    <li>O bloco de resposta retorna JSON com dados, paginação e metadados</li>
    <li>O cliente recebe uma resposta estruturada com status 200</li>
  </ol>
</div>

### Confirmação de webhook

<div className="mb-4 rounded-md border p-4">
  <h4 className="font-medium">
    Cenário: Confirmar recepção e processamento do webhook
  </h4>

  <ol>
    <li>O disparador de webhook recebe dados do sistema externo</li>
    <li>O fluxo de trabalho processa os dados recebidos</li>

    <li>
      O bloco de resposta retorna uma confirmação com o status do processamento
    </li>

    <li>O sistema externo recebe a confirmação</li>
  </ol>
</div>

### Tratamento de respostas de erro

<div className="mb-4 rounded-md border p-4">
  <h4 className="font-medium">
    Cenário: Retornar respostas de erro apropriadas
  </h4>

  <ol>
    <li>O bloco de condição detecta falhas de validação ou erros do sistema</li>
    <li>O roteador direciona para a rota de tratamento de erros</li>
    <li>O bloco de resposta retorna status 400/500 com detalhes do erro</li>
    <li>O cliente recebe informações estruturadas do erro</li>
  </ol>
</div>

## Entradas e saídas

<Tabs items={["Configuração", "Variáveis", "Resultados"]}>
  <Tab title="Configuração">
    <ul>
      <li>
        <strong>Dados de resposta</strong>: Estrutura JSON para o corpo da
        resposta
      </li>

      <li>
        <strong>Código de status</strong>: Código de status HTTP (padrão: 200)
      </li>

      <li>
        <strong>Cabeçalhos</strong>: Cabeçalhos HTTP personalizados como pares
        chave-valor
      </li>

      <li>
        <strong>Modo</strong>: Modo Construtor ou Editor para construção de
        respostas
      </li>
    </ul>
  </Tab>

  <Tab title="Variáveis">
    <ul>
      <li>
        <strong>response.data</strong>: O corpo de resposta estruturado
      </li>

      <li>
        <strong>response.status</strong>: Código de status HTTP enviado
      </li>

      <li>
        <strong>response.headers</strong>: Cabeçalhos incluídos na resposta
      </li>

      <li>
        <strong>response.success</strong>: Booleano que indica conclusão
        bem-sucedida
      </li>
    </ul>
  </Tab>

  <Tab title="Resultados">
    <ul>
      <li>
        <strong>Resposta HTTP</strong>: Resposta completa enviada ao solicitante
        da API
      </li>

      <li>
        <strong>Terminação do fluxo de trabalho</strong>: Finaliza a execução do
        fluxo de trabalho
      </li>

      <li>
        <strong>Acesso</strong>: Os blocos de resposta são terminais - não há
        blocos subsequentes
      </li>
    </ul>
  </Tab>
</Tabs>

## Referências de variáveis

Utilize a sintaxe `<variable.name>` para inserir dinamicamente variáveis do fluxo de trabalho na sua resposta:

```json theme={null}
{
  "user": {
    "id": "<variable.userId>",
    "name": "<variable.userName>",
    "email": "<variable.userEmail>"
  },
  "query": "<variable.searchQuery>",
  "results": "<variable.searchResults>",
  "totalFound": "<variable.resultCount>",
  "processingTime": "<variable.executionTime>ms"
}
```

<Callout type="warning">
  Os nomes de variáveis diferenciam maiúsculas de minúsculas e devem
  corresponder exatamente às variáveis disponíveis no seu fluxo de trabalho.
</Callout>

## Melhores práticas

* **Use códigos de status significativos**: Escolha códigos de status HTTP apropriados que reflitam com precisão o resultado do fluxo de trabalho
* **Estruture suas respostas de forma consistente**: Mantenha uma estrutura JSON consistente em todos os seus endpoints de API para uma melhor experiência do desenvolvedor
* **Inclua metadados relevantes**: Adicione timestamps e informações de versão para ajudar com depuração e monitoramento
* **Lide com erros elegantemente**: Utilize lógica condicional no seu fluxo de trabalho para estabelecer respostas de erro apropriadas com mensagens descritivas
* **Valide as referências de variáveis**: Certifique-se de que todas as variáveis referenciadas existam e contenham os tipos de dados esperados antes que o bloco de Resposta seja executado
