Nodo http request
Il nodo http request
è progettato per eseguire richieste HTTP a servizi web esterni o API. Supporta numerosi metodi HTTP, tipi di dati, autenticazione e gestione flessibile delle richieste e delle risposte.
Impostazioni del nodo http request
1. Nome
Campo per specificare il nome del nodo.
Il nome viene visualizzato nell'area di lavoro e aiuta a identificare facilmente il nodo.
Se lasciato vuoto, il nodo sarà chiamato http request
.
Esempio:
- Nome del nodo:
Get Weather Data
2. Metodo
Il metodo HTTP che verrà utilizzato per la richiesta. La scelta del metodo dipende dal tipo di operazione che deve essere eseguita.
Metodi disponibili:
GET
: Recupero dei dati.POST
: Invio dei dati.PUT
: Aggiornamento dei dati.DELETE
: Cancellazione dei dati.PATCH
: Aggiornamento parziale dei dati.HEAD
: Recupero delle intestazioni della risposta.OPTIONS
: Recupero delle informazioni sull'API.
Esempio:
- Metodo:
POST
3. Collegamento
Campo per specificare un URL statico a cui verrà inviata la richiesta.
Se l'indirizzo deve essere specificato dinamicamente, può essere passato in msg.url
.
Esempio:
- Collegamento:
https://api.example.com/data
4. Dati
Definisce come i dati in ingresso verranno aggiunti alla richiesta HTTP. Sono disponibili le seguenti opzioni:
-
Ignora:
I dati in ingresso non verranno utilizzati nella richiesta. Il campomsg.payload
, se esiste, verrà ignorato.Esempio:
Se inmsg.payload
è presente un oggetto JSON, non verrà incluso nella richiesta.
-
Aggiungi ai parametri di query:
I dati damsg.payload
verranno convertiti in parametri della stringa di query (Query Parameters) e aggiunti all'URL.Esempio:
Semsg.payload
contiene:{
"key1": "value1",
"key2": "value2"
}Se il Collegamento è specificato come
http://example.com/api
, la richiesta finale sarà:
GET http://example.com/api?key1=value1&key2=value2
.
-
Invia come corpo della richiesta:
I dati damsg.payload
verranno inviati nel corpo della richiesta. Questa opzione è adatta per metodi comePOST
,PUT
ePATCH
, dove i dati vengono spesso trasmessi nel corpo.Esempio:
Semsg.payload
contiene:{
"name": "John Doe",
"email": "john.doe@example.com"
}Se il metodo della richiesta è
POST
, i dati verranno inviati nel corpo della richiesta con il contenuto appropriato.
5. Restituisci
Definisce in quale formato il nodo elaborerà la risposta dal server.
Opzioni:
- Stringa UTF-8: La risposta viene convertita in una stringa (predefinito).
- Buffer: La risposta viene restituita come oggetto
Buffer
(utile per dati binari, come immagini o file). - JSON: Se la risposta del server è in formato JSON, viene automaticamente convertita in un oggetto JavaScript.
Esempio:
- Se è selezionato
JSON
, la risposta:Viene convertita in:{"status": "ok", "value": 42}
msg.payload = { status: "ok", value: 42 };
6. Autenticazione
Il nodo supporta meccanismi di autenticazione integrati.
Basic Auth
- Nome utente: Nome utente.
- Password: Password.
Bearer Token
- Token: Token di accesso.
Digest
- Nome utente: Nome utente.
- Password: Password.
Dati in ingresso
Il nodo http request
accetta un oggetto messaggio msg
con i parametri:
- msg.url: URL per la richiesta (se non specificato nelle impostazioni del nodo).
- msg.method: Metodo HTTP (se non specificato nelle impostazioni del nodo).
- msg.payload: Corpo della richiesta (utilizzato per i metodi
POST
,PUT
,PATCH
). - msg.headers: Intestazioni della richiesta HTTP (oggetto).
Dati in uscita
Il nodo restituisce un oggetto msg
con informazioni sulla richiesta eseguita:
- msg.payload: Dati della risposta dal server.
- msg.statusCode: Codice di stato HTTP della risposta (ad esempio,
200
o404
). - msg.headers: Intestazioni della risposta.
- msg.responseUrl: URL a cui è stata eseguita la richiesta.
- msg.error: Descrizione dell'errore (se la richiesta è fallita).
Esempi di utilizzo
Esempio 1: Esecuzione di una richiesta GET
Impostazioni del nodo:
- Metodo:
GET
- URL:
https://api.weatherapi.com/v1/current.json?key=API_KEY&q=London
Flusso:
[inject] ---> [http request] ---> [debug]
Risultato: Il nodo restituirà JSON con il meteo attuale.
Esempio 2: Invio di dati tramite POST
Impostazioni del nodo:
- Metodo:
POST
- URL:
https://api.example.com/devices
- Dati:
JSON
Flusso:
[function] ---> [http request] ---> [debug]
Codice nel nodo function
:
msg.payload = {
deviceId: "sensor123",
status: "active"
};
msg.headers = { "Content-Type": "application/json" };
return msg;
Risultato: I dati verranno inviati e il nodo restituirà la risposta del server.
Esempio 3: URL dinamico e autenticazione
Impostazioni del nodo:
- URL: (lasciare vuoto)
Flusso:
[function] ---> [http request] ---> [debug]
Codice nel nodo function
:
msg.url = "https://api.example.com/user/123";
msg.headers = { Authorization: "Bearer YOUR_TOKEN" };
return msg;
Risultato: Il nodo eseguirà la richiesta all'URL specificato con il token di autenticazione.