Passa al contenuto principale

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

IMG2

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:

  1. Ignora:
    I dati in ingresso non verranno utilizzati nella richiesta. Il campo msg.payload, se esiste, verrà ignorato.

    Esempio:
    Se in msg.payload è presente un oggetto JSON, non verrà incluso nella richiesta.


  1. Aggiungi ai parametri di query:
    I dati da msg.payload verranno convertiti in parametri della stringa di query (Query Parameters) e aggiunti all'URL.

    Esempio:
    Se msg.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.


  1. Invia come corpo della richiesta:
    I dati da msg.payload verranno inviati nel corpo della richiesta. Questa opzione è adatta per metodi come POST, PUT e PATCH, dove i dati vengono spesso trasmessi nel corpo.

    Esempio:
    Se msg.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:
    {"status": "ok", "value": 42}
    Viene convertita in:
    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:

  1. msg.url: URL per la richiesta (se non specificato nelle impostazioni del nodo).
  2. msg.method: Metodo HTTP (se non specificato nelle impostazioni del nodo).
  3. msg.payload: Corpo della richiesta (utilizzato per i metodi POST, PUT, PATCH).
  4. msg.headers: Intestazioni della richiesta HTTP (oggetto).

Dati in uscita

Il nodo restituisce un oggetto msg con informazioni sulla richiesta eseguita:

  1. msg.payload: Dati della risposta dal server.
  2. msg.statusCode: Codice di stato HTTP della risposta (ad esempio, 200 o 404).
  3. msg.headers: Intestazioni della risposta.
  4. msg.responseUrl: URL a cui è stata eseguita la richiesta.
  5. 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.