Przejdź do głównej zawartości

Węzeł http request

Węzeł http request jest przeznaczony do wykonywania zapytań HTTP do zewnętrznych usług internetowych lub API. Obsługuje wiele metod HTTP, typów danych, uwierzytelnianie oraz elastyczne zarządzanie zapytaniami i odpowiedziami.


Ustawienia węzła http request

IMG2

1. Nazwa

Pole do podania nazwy węzła.
Nazwa jest wyświetlana w obszarze roboczym i pomaga łatwo zidentyfikować węzeł.
Jeśli pozostawisz puste, węzeł będzie nazywał się http request.

Przykład:

  • Nazwa węzła: Pobierz dane pogodowe

2. Metoda

Metoda HTTP, która będzie używana do zapytania. Wybór metody zależy od rodzaju operacji, którą należy wykonać.

Dostępne metody:

  • GET: Pobieranie danych.
  • POST: Wysyłanie danych.
  • PUT: Aktualizacja danych.
  • DELETE: Usuwanie danych.
  • PATCH: Częściowa aktualizacja danych.
  • HEAD: Pobieranie nagłówków odpowiedzi.
  • OPTIONS: Pobieranie informacji o API.

Przykład:

  • Metoda: POST

Pole do podania statycznego adresu URL, do którego będzie wysłane zapytanie.
Jeśli adres należy podać dynamicznie, można go przekazać w msg.url.

Przykład:

  • Link: https://api.example.com/data

4. Dane

Określa, jak dane wejściowe będą dodawane do zapytania HTTP. Dostępne są następujące opcje:

  1. Ignoruj:
    Dane wejściowe nie będą używane w zapytaniu. Pole msg.payload, jeśli istnieje, zostanie zignorowane.

    Przykład:
    Jeśli w msg.payload znajduje się obiekt JSON, nie zostanie on uwzględniony w zapytaniu.


  1. Dodaj do parametrów zapytania:
    Dane z msg.payload zostaną przekształcone w parametry ciągu zapytania (Query Parameters) i dodane do URL.

    Przykład:
    Jeśli msg.payload zawiera:

    {
    "key1": "value1",
    "key2": "value2"
    }

    Jeśli Link jest podany jako http://example.com/api, to końcowe zapytanie będzie:
    GET http://example.com/api?key1=value1&key2=value2.


  1. Wyślij jako ciało zapytania:
    Dane z msg.payload zostaną wysłane w ciele zapytania. Ta opcja jest odpowiednia dla metod, takich jak POST, PUT i PATCH, gdzie dane często są przekazywane w ciele.

    Przykład:
    Jeśli msg.payload zawiera:

    {
    "name": "John Doe",
    "email": "john.doe@example.com"
    }

    Jeśli metoda zapytania to POST, dane zostaną wysłane w ciele zapytania z odpowiednią zawartością.

5. Zwróć

Określa, w jakim formacie węzeł przetworzy odpowiedź z serwera.

Opcje:

  • UTF-8 string: Odpowiedź jest przekształcana w ciąg (domyślnie).
  • Buffer: Odpowiedź jest zwracana jako obiekt Buffer (przydatne dla danych binarnych, takich jak obrazy lub pliki).
  • JSON: Jeśli odpowiedź serwera jest w formacie JSON, jest automatycznie przekształcana w obiekt JavaScript.

Przykład:

  • Jeśli wybrano JSON, odpowiedź:
    {"status": "ok", "value": 42}
    Jest przekształcana w:
    msg.payload = { status: "ok", value: 42 };

6. Uwierzytelnianie

Węzeł obsługuje wbudowane mechanizmy uwierzytelniania.

Basic Auth

  • Nazwa użytkownika: Nazwa użytkownika.
  • Hasło: Hasło.

Bearer Token

  • Token: Token dostępu.

Digest

  • Nazwa użytkownika: Nazwa użytkownika.
  • Hasło: Hasło.

Dane wejściowe

Węzeł http request przyjmuje obiekt wiadomości msg z parametrami:

  1. msg.url: URL do zapytania (jeśli nie jest podany w ustawieniach węzła).
  2. msg.method: Metoda HTTP (jeśli nie jest określona w ustawieniach węzła).
  3. msg.payload: Ciało zapytania (używane dla metod POST, PUT, PATCH).
  4. msg.headers: Nagłówki zapytania HTTP (obiekt).

Dane wyjściowe

Węzeł zwraca obiekt msg z informacjami o wykonanym zapytaniu:

  1. msg.payload: Dane odpowiedzi z serwera.
  2. msg.statusCode: Kod statusu HTTP odpowiedzi (np. 200 lub 404).
  3. msg.headers: Nagłówki odpowiedzi.
  4. msg.responseUrl: URL, do którego wykonano zapytanie.
  5. msg.error: Opis błędu (jeśli zapytanie zakończyło się niepowodzeniem).

Przykłady użycia

Przykład 1: Wykonanie zapytania GET

Ustawienia węzła:

  • Metoda: GET
  • URL: https://api.weatherapi.com/v1/current.json?key=API_KEY&q=London

Przepływ:

[inject] ---> [http request] ---> [debug]

Wynik: Węzeł zwróci JSON z aktualną pogodą.


Przykład 2: Wysyłanie danych przez POST

Ustawienia węzła:

  • Metoda: POST
  • URL: https://api.example.com/devices
  • Dane: JSON

Przepływ:

[function] ---> [http request] ---> [debug]

Kod w węźle function:

msg.payload = {
deviceId: "sensor123",
status: "active"
};
msg.headers = { "Content-Type": "application/json" };
return msg;

Wynik: Dane zostaną wysłane, a węzeł zwróci odpowiedź serwera.


Przykład 3: Dynamiczny URL i uwierzytelnianie

Ustawienia węzła:

  • URL: (pozostawić pustym)

Przepływ:

[function] ---> [http request] ---> [debug]

Kod w węźle function:

msg.url = "https://api.example.com/user/123";
msg.headers = { Authorization: "Bearer YOUR_TOKEN" };
return msg;

Wynik: Węzeł wykona zapytanie do podanego URL z tokenem uwierzytelniającym.