Nhảy đến nội dung

Nút http request

Nút http request được thiết kế để thực hiện các yêu cầu HTTP đến các dịch vụ web hoặc API bên ngoài. Nó hỗ trợ nhiều phương thức HTTP, cách truyền dữ liệu, xác thực và quản lý linh hoạt các yêu cầu và phản hồi.


Cài đặt nút http request

IMG2

1. Tên

Trường để chỉ định tên của nút.
Tên sẽ hiển thị trong không gian làm việc và giúp dễ dàng xác định nút.
Nếu để trống, nút sẽ được gọi là http request.

Ví dụ:

  • Tên nút: Lấy Dữ Liệu Thời Tiết

2. Phương thức

Phương thức HTTP sẽ được sử dụng cho yêu cầu. Việc chọn phương thức phụ thuộc vào loại thao tác cần thực hiện.

Các phương thức có sẵn:

  • GET: Lấy dữ liệu.
  • POST: Gửi dữ liệu.
  • PUT: Cập nhật dữ liệu.
  • DELETE: Xóa dữ liệu.
  • HEAD: Lấy tiêu đề phản hồi.

Ví dụ:

  • Phương thức: POST

3. Liên kết

Trường để chỉ định URL tĩnh mà yêu cầu sẽ được gửi đến.
Nếu địa chỉ cần được chỉ định một cách động, nó có thể được truyền vào msg.url.

Ví dụ:

  • Liên kết: https://api.example.com/data

4. Dữ liệu

Xác định cách dữ liệu đầu vào sẽ được thêm vào yêu cầu HTTP. Các tùy chọn có sẵn:

  1. Bỏ qua (mặc định):
    Dữ liệu đầu vào sẽ không được sử dụng trong yêu cầu. Trường msg.payload, nếu tồn tại, sẽ bị bỏ qua.

    Ví dụ:
    Nếu trong msg.payload chứa một đối tượng JSON, nó sẽ không được bao gồm trong yêu cầu.


  1. Thêm vào tham số truy vấn:
    Dữ liệu từ msg.payload sẽ được chuyển đổi thành các tham số chuỗi truy vấn (Query Parameters) và được thêm vào URL.

    Ví dụ:
    Nếu msg.payload chứa:

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

    Nếu Liên kết được chỉ định là http://example.com/api, thì yêu cầu cuối cùng sẽ là:
    GET http://example.com/api?key1=value1&key2=value2.


  1. Gửi dưới dạng thân yêu cầu:
    Dữ liệu từ msg.payload sẽ được gửi trong thân yêu cầu. Tùy chọn này phù hợp cho các phương thức POSTPUT, nơi dữ liệu thường được truyền trong thân.

    Ví dụ:
    Nếu msg.payload chứa:

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

    Nếu phương thức yêu cầu là POST, dữ liệu sẽ được gửi trong thân yêu cầu với nội dung tương ứng.

5. Trả về

Xác định định dạng mà nút sẽ xử lý phản hồi từ máy chủ.

Các tùy chọn:

  • Chuỗi: Phản hồi được chuyển đổi thành chuỗi (mặc định).
  • Đối tượng JSON: Nếu phản hồi từ máy chủ ở định dạng JSON, nó sẽ tự động được chuyển đổi thành đối tượng JavaScript.
  • Bộ đệm nhị phân: Phản hồi được trả về dưới dạng bộ đệm nhị phân (hữu ích cho dữ liệu nhị phân, chẳng hạn như hình ảnh hoặc tệp).

Ví dụ:

  • Nếu chọn Đối tượng JSON, phản hồi:
    {"status": "ok", "value": 42}
    sẽ được chuyển đổi thành:
    msg.payload = { status: "ok", value: 42 };

6. Sử dụng xác thực

Hộp kiểm này kích hoạt xác thực tích hợp (mặc định tắt). Khi được bật, một trường Loại sẽ xuất hiện với phương thức xác thực (mặc định là basic):

basic

  • Tên người dùng: Tên người dùng.
  • Mật khẩu: Mật khẩu.

bearer

  • Mật khẩu: Mã thông báo truy cập.

digest

  • Tên người dùng: Tên người dùng.
  • Mật khẩu: Mật khẩu.

Dữ liệu đầu vào

Nút http request nhận một đối tượng tin nhắn msg với các tham số:

  1. msg.url: URL cho yêu cầu (nếu không được chỉ định trong cài đặt nút).
  2. msg.method: Phương thức HTTP (nếu không được chỉ định trong cài đặt nút).
  3. msg.payload: Thân yêu cầu (được sử dụng cho các phương thức POST, PUT).
  4. msg.headers: Tiêu đề của yêu cầu HTTP (đối tượng).

Dữ liệu đầu ra

Nút trả về một đối tượng msg với thông tin về yêu cầu đã thực hiện:

  1. msg.payload: Dữ liệu phản hồi từ máy chủ.
  2. msg.statusCode: Mã trạng thái HTTP của phản hồi (ví dụ: 200 hoặc 404).
  3. msg.headers: Tiêu đề của phản hồi.
  4. msg.responseUrl: URL mà yêu cầu đã được thực hiện.
  5. msg.error: Mô tả lỗi (nếu yêu cầu không thành công).

Ví dụ sử dụng

Ví dụ 1: Thực hiện yêu cầu GET

Cài đặt nút:

  • Phương thức: GET
  • Liên kết: https://api.weatherapi.com/v1/current.json?key=API_KEY&q=London

Luồng:

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

Kết quả: Nút sẽ trả về JSON với thời tiết hiện tại.


Ví dụ 2: Gửi dữ liệu qua POST

Cài đặt nút:

  • Phương thức: POST
  • Liên kết: https://api.example.com/devices
  • Dữ liệu: Gửi dưới dạng thân yêu cầu

Luồng:

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

Mã trong nút function:

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

Kết quả: Dữ liệu sẽ được gửi và nút sẽ trả về phản hồi từ máy chủ.


Ví dụ 3: URL động và xác thực

Cài đặt nút:

  • Liên kết: (để trống)

Luồng:

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

Mã trong nút function:

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

Kết quả: Nút sẽ thực hiện yêu cầu đến URL đã chỉ định với mã thông báo xác thực.