O bloco Response encerra um workflow e retorna uma resposta HTTP estruturada para quem chamou. Use-o junto com um deploy por API para controlar exatamente o corpo, o status code e os headers que voltam.
Configuração
Response Data Mode
O modo Builder monta o corpo da resposta campo por campo, com tipos; o Editor é um editor de código JSON puro. O Builder atende à maioria dos casos.
Response Data
O corpo devolvido, em JSON. Referencie qualquer valor anterior: a saída de um block, como <agent.content>, com uma connection tag, ou uma variável do workflow, como <variable.userId>. Aninhe objetos e arrays livremente.
{
"query": "<start.input>",
"answer": "<agent.content>",
"model": "<agent.model>"
}Status Code
Qualquer status code HTTP válido; o padrão é 200. Use 4xx ou 5xx em ramificações de erro (201 criado, 400 requisição inválida, 404 não encontrado, 500 erro de servidor).
Response Headers
Headers extras na resposta, como pares chave-valor:
| Chave | Valor |
|---|---|
| Content-Type | application/json |
| Cache-Control | no-cache |
| X-API-Version | 1.0 |
Saídas
O bloco Response é um block terminal, então nada lê dele. Seus data, status e headers se tornam a própria resposta HTTP. Um workflow sem bloco Response retorna, por padrão, a saída do último block; adicione um bloco Response quando precisar de controle exato do HTTP.
Não coloque um bloco Response em paralelo com blocks que tenham efeitos colaterais importantes. A ordem entre ramificações paralelas não é determinística, então o Response pode disparar antes ou depois deles em qualquer execução.
Exemplos
Retornar dados de um endpoint de API
O bloco Response lê <agent.content> para o corpo e retorna 200 a quem chamou a API.
Confirmar um webhook
Depois de processar o payload, o bloco Response retorna uma pequena confirmação para que o remetente saiba que o evento foi recebido.
Retornar um status diferente por ramificação
Um Condition envia as requisições válidas para um Response 200 e as inválidas para um 400. O primeiro Response a executar define o que o chamador recebe.
Boas práticas
- Use status codes precisos.
2xxpara sucesso,4xx/5xxpara erros, definidos por ramificação. - Mantenha um formato de resposta consistente entre seus endpoints, para que os chamadores possam confiar nele.
- Retorne uma resposta diferente por resultado. Coloque um Response em cada ramificação depois de um Condition ou Router.
- Confira se suas referências resolvem. Uma connection tag que aponta para um block que não executou volta vazia, então defina os campos na ramificação que os produz.