API: Risposta REST

action_api_response · action · HTTP & Webhook · Disponibile · v1.0.0

Descrizione

Trasforma il tuo workflow in una vera API REST con risposta STRUTTURATA e coerente, in JavaScript puro (zero dipendenze). Si posiziona alla fine di un workflow che parte da `trigger_webhook` (responseMode = "use-respond-node"): il trigger riceve la chiamata HTTP, il workflow elabora, e questo nodo costruisce la risposta nel formato REST standard 2026 — così chi consuma la tua API riceve SEMPRE una struttura prevedibile, non un JSON improvvisato. Due modalità da dropdown: (1) SUCCESS — avvolge i dati in un envelope coerente `{ ok: true, data: <payload>, meta?: {…} }` con uno status di successo semantico (200 OK / 201 Created / 202 Accepted / 204 No Content) e un blocco meta opzionale per paginazione, totali, versione; (2) ERROR — produce `{ ok: false, error: { code, message, details? } }` con il CODICE D'ERRORE REST standard che mappa automaticamente sullo status HTTP corretto (bad_request→400, unauthorized→401, forbidden→403, not_found→404, conflict→409, validation_error→422, rate_limited→429, server_error→500) — niente più status sbagliati o messaggi d'errore incoerenti tra un endpoint e l'altro. Gestione CORS integrata (origin, metodi, header, credentials) per essere chiamato direttamente dal browser di una SPA senza configurare nulla a mano, header personalizzati con guardia anti-injection (no CRLF), e modalità "envelope off" se preferisci restituire i dati grezzi. Content-Type sempre application/json; charset=utf-8. Output: sentinel `__webhookResponse` raccolto dal runtime (status + body + headers). Use case: esponi un endpoint pubblico che restituisce i dati di un ordine in formato REST pulito (SUCCESS + envelope + meta paginazione); rispondi 404 strutturato quando una risorsa non esiste (ERROR not_found); valida l'input e rispondi 422 con i dettagli dei campi sbagliati (ERROR validation_error + details); crea una micro-API consumata da una SPA browser (CORS on); webhook che risponde 200 con un ack strutturato a un partner B2B.

⚙️ Parametri di configurazione

Campi mostrati nell’editor quando si configura il nodo. Generati direttamente dal NodeDefconfigFields.

CampoTipoRequiredDefaultDescrizione
mode
Tipo di risposta
enum
successerror
sisuccesssuccess = { ok:true, data } · error = { ok:false, error } con status mappato automaticamente.
data
Dati (payload)
expressionnoinputIl contenuto della risposta (oggetto/JSON o expression upstream). Vuoto = usa l'input del nodo.
statusSuccess
Status di successo
enum
200201202204
no200200 OK · 201 Created · 202 Accepted · 204 No Content (senza body).
meta
Meta (JSON, opzionale)
JSON object/arrayno
{ "page": 1, "pageSize": 20, "total": 137 }
Metadati aggiunti come { ok, data, meta }. Tipico per paginazione/totali.
errorCode
Codice errore
enum
bad_requestunauthorizedforbiddennot_foundconflictvalidation_errorrate_limitedserver_error
nobad_requestMappa automaticamente sullo status HTTP (es. not_found→404, validation_error→422).
errorMessage
Messaggio errore
stringno
Risorsa non trovata
Messaggio leggibile. Vuoto = derivato dal codice.
errorDetails
Dettagli errore (JSON, opzionale)
JSON object/arrayno
{ "field": "email", "reason": "formato non valido" }
Dettagli strutturati (es. errori di validazione per campo).
envelope
Envelope { ok, data/error }
booleannotrueAvvolge la risposta nel formato standard. Disattiva per restituire i dati grezzi.
cors
Abilita CORS
booleannoAggiunge gli header CORS — necessario se l'API è chiamata dal browser di una SPA.
corsOrigin
CORS Origin
stringno*Origine consentita (* o un dominio specifico).
corsMethods
CORS Metodi
stringnoGET,POST,PUT,DELETE,OPTIONS
corsHeaders
CORS Header consentiti
stringnoContent-Type,Authorization
corsCredentials
CORS Credentials
booleannoConsente l'invio di cookie/credenziali (Access-Control-Allow-Credentials).
headers
Header personalizzati (JSON)
JSON object/arrayno
{ "Cache-Control": "no-store", "X-Api-Version": "1" }
Header extra. I valori con a-capo (CRLF) vengono scartati (anti-injection).

⬆️ Output del nodo

Campi disponibili nei nodi successivi via $node.<alias>.json.<field>:

  • default

💡 Esempio configurazione

Snippet JSON del nodo come compare nel workflow. I valori sono derivati daidefaultValue e dai parametri required.

{
  "id": "node-action_api_response-1",
  "defId": "action_api_response",
  "label": "API: Risposta REST",
  "config": {
    "mode": "success",
    "data": "input",
    "statusSuccess": "200",
    "errorCode": "bad_request",
    "envelope": true,
    "corsOrigin": "*",
    "corsMethods": "GET,POST,PUT,DELETE,OPTIONS",
    "corsHeaders": "Content-Type,Authorization"
  }
}

🔗 Nodi correlati nella stessa categoria

Pronto a usare API: Risposta REST?

Disponibile da subito in tutti i piani FlowForge. Provalo gratis senza carta di credito.

Inizia gratisSfoglia tutti i nodi