Node http request
Node 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, loại 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 cho node http request
1. Tên
Trường để chỉ định tên của node.
Tên được hiển thị trong không gian làm việc và giúp dễ dàng xác định node.
Nếu để trống, node sẽ được gọi là http request
.
Ví dụ:
- Tên node:
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. Lựa 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.PATCH
: Cập nhật một phần dữ liệu.HEAD
: Lấy tiêu đề phản hồi.OPTIONS
: Lấy thông tin về API.
Ví dụ:
- Phương thức:
POST
3. Liên kết
Trường để chỉ định một URL tĩnh mà yêu cầu sẽ được gửi đến.
Nếu địa chỉ cần được thiết lập độ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 sau có sẵn:
-
Bỏ qua:
Dữ liệu đầu vào sẽ không được sử dụng trong yêu cầu.msg.payload
, nếu tồn tại, sẽ bị bỏ qua.Ví dụ:
Nếumsg.payload
chứa một đối tượng JSON, nó sẽ không được bao gồm trong yêu cầu.
-
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ố truy vấn và thêm vào URL.Ví dụ:
Nếumsg.payload
chứa:{
"key1": "value1",
"key2": "value2"
}Nếu Liên kết được chỉ định là
http://example.com/api
, yêu cầu cuối cùng sẽ là:
GET http://example.com/api?key1=value1&key2=value2
.
-
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 của yêu cầu. Tùy chọn này phù hợp cho các phương thức nhưPOST
,PUT
, vàPATCH
, nơi dữ liệu thường được gửi trong thân.Ví dụ:
Nếumsg.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 của yêu cầu với nội dung phù hợp.
5. Trả về
Xác định định dạng mà node sẽ xử lý phản hồi từ máy chủ.
Tùy chọn:
- Chuỗi UTF-8: Phản hồi được chuyển đổi thành chuỗi (mặc định).
- Buffer: Phản hồi được trả về dưới dạng đối tượng
Buffer
(hữu ích cho dữ liệu nhị phân như hình ảnh hoặc tệp). - JSON: Nếu phản hồi của máy chủ ở định dạng JSON, nó sẽ tự động được chuyển đổi thành đối tượng JavaScript.
Ví dụ:
- Nếu chọn
JSON
, phản hồi:sẽ được chuyển đổi thành:{"status": "ok", "value": 42}
msg.payload = { status: "ok", value: 42 };
6. Xác thực
Node hỗ trợ các cơ chế xác thực tích hợp sẵn.
Xác thực cơ bản
- Tên người dùng: Tên người dùng.
- Mật khẩu: Mật khẩu.
Bearer Token
- Token: Mã truy cập.
Digest
- Tên người dùng: Tên người dùng.
- Mật khẩu: Mật khẩu.
Đầu vào
Node http request
chấp nhận một đối tượng tin nhắn msg
với các tham số sau:
- msg.url: URL cho yêu cầu (nếu không được chỉ định trong cài đặt node).
- msg.method: Phương thức HTTP (nếu không được chỉ định trong cài đặt node).
- msg.payload: Thân của yêu cầu (được sử dụng cho các phương thức
POST
,PUT
,PATCH
). - msg.headers: Tiêu đề yêu cầu HTTP (đối tượng).
Đầu ra
Node trả về một đối tượng msg
với thông tin về yêu cầu đã thực hiện:
- msg.payload: Dữ liệu phản hồi từ máy chủ.
- msg.statusCode: Mã trạng thái HTTP của phản hồi (ví dụ:
200
hoặc404
). - msg.headers: Tiêu đề phản hồi.
- msg.responseUrl: URL mà yêu cầu đã được thực hiện.
- msg.error: Mô tả lỗi (nếu yêu cầu thất bại).
Ví dụ sử dụng
Ví dụ 1: Thực hiện yêu cầu GET
Cài đặt node:
- Phương thức:
GET
- URL:
https://api.weatherapi.com/v1/current.json?key=API_KEY&q=London
Luồng:
[inject] ---> [http request] ---> [debug]
Kết quả: Node 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 node:
- Phương thức:
POST
- URL:
https://api.example.com/devices
- Dữ liệu:
JSON
Luồng:
[function] ---> [http request] ---> [debug]
Mã trong node 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à node sẽ trả về phản hồi từ máy chủ.
Ví dụ 3: URL động và xác thực
Cài đặt node:
- URL: (để trống)
Luồng:
[function] ---> [http request] ---> [debug]
Mã trong node function
:
msg.url = "https://api.example.com/user/123";
msg.headers = { Authorization: "Bearer YOUR_TOKEN" };
return msg;
Kết quả: Node sẽ thực hiện yêu cầu đến URL đã chỉ định với mã xác thực.