Gửi yêu cầu HTTP
Hành động Gửi yêu cầu HTTP kết nối dòng công việc với máy chủ web hoặc URL và gửi yêu cầu HTTP.
Sau khi Flow gửi yêu cầu HTTP, hệ thống sẽ chờ tối đa 30 giây để nhận mã phản hồi HTTP. Nếu Flow không nhận được phản hồi sau 30 giây, kết nối với ứng dụng sẽ bị đóng. Sau đó, Flow sẽ thử lại yêu cầu.
Trường
Hành động Gửi yêu cầu HTTP có chứa các trường sau.
| Trường | Mô tả |
|---|---|
| Phương thức HTTP | Phương thức của yêu cầu HTTP cần gửi. Hành động Gửi yêu cầu HTTP hỗ trợ các phương thức sau:
|
| URL | URL của máy chủ nhận yêu cầu HTTP. |
| Tiêu đề | Cặp khóa và giá trị cho yêu cầu HTTP. Bạn có thể nhập nhiều cặp khóa - giá trị. |
| Nội dung | Nội dung sẽ gửi đến máy chủ. |
| Khi có lỗi máy khách (Phản hồi 4XX) | Khi nhận được mã phản hồi cho biết lỗi máy khách, Flow sẽ:
|
| Khi có lỗi máy chủ (Phản hồi 5XX hoặc 429) | Khi nhận được mã phản hồi cho biết lỗi máy chủ, Flow sẽ:
|
Dữ liệu trả về
Để truy cập dữ liệu được trả về trong các bước theo sau thao tác này, hãy sử dụng biến có tên sendHttpRequest bao gồm mọi chi tiết về phản hồi HTTP. Tùy chọn: sử dụng thao tác Run code để phân tích cú pháp body của phản hồi nhằm sử dụng trong các bước sau của dòng công việc, như trong ví dụ dưới đây.
Nếu thao tác Send HTTP request được sử dụng nhiều lần trong một dòng công việc, một số sẽ được thêm vào tên biến. Ví dụ: trong dòng công việc sử dụng thao tác Send HTTP request hai lần, biến đầu tiên cho dữ liệu trả về là sendHttpRequest và biến thứ hai là sendHttpRequest1. Bạn không thể tùy chỉnh tên này.
Mã phản hồi
Bảng sau đây mô tả cách Flow xử lý mã phản hồi HTTP sau khi nhận được phản hồi.
| Mã phản hồi HTTP | Cách Flow xử lý mã phản hồi |
|---|---|
| Thành công 2XX hoặc 3XX | Flow đánh dấu yêu cầu HTTP là thành công và thực hiện các thao tác tiếp theo trong dòng công việc. |
| Lỗi 4XX, Lỗi 5XX và 429 | Tùy thuộc vào cách định cấu hình thao tác, Flow sẽ:
|
| Mã phản hồi khác | Nếu phản hồi trả về mã không được mô tả trong bảng này hoặc hết thời gian chờ khi thử lại thao tác, Flow sẽ đánh dấu yêu cầu HTTP là không thành công, đánh dấu lần chạy dòng công việc là không thành công và không thực hiện các thao tác tiếp theo của dòng công việc. |
Thông tin bí mật
Thông tin bí mật được dùng để lưu trữ an toàn thông tin nhạy cảm để sử dụng trong thao tác Send HTTP request, ví dụ như mã token truy cập hoặc mật khẩu. Thông tin bí mật được tạo và quản lý từ trang Flow > Cài đặt. Thông tin bí mật chứa tên định danh, giá trị và nội dung mô tả. Tham chiếu thông tin bí mật dưới dạng biến Liquid (ví dụ như {{secrets.handle}}) hoặc từ tùy chọn Thêm thông tin bí mật khi định cấu hình các trường URL, Giá trị tiêu đề hoặc Nội dung. Giá trị bí mật không bao giờ hiển thị trong giao diện Flow và được ẩn đi trong nhật ký lần chạy dòng công việc.
Yếu tố kích hoạt
Có thể sử dụng thao tác Send HTTP request trong bất kỳ dòng công việc nào.
Ví dụ
Ví dụ 1: Gửi yêu cầu HTTP đến dịch vụ bên ngoài
Trong ví dụ này, hãy dùng Flow để gửi yêu cầu HTTP đến một dịch vụ bên ngoài.
Trước khi bắt đầu, hãy định cấu hình dịch vụ web nhận yêu cầu HTTP và lưu trữ dữ liệu của các yêu cầu đó để thử nghiệm, ví dụ như Request Catcher. Hãy nhớ thận trọng khi gửi dữ liệu nhạy cảm (như mật khẩu hoặc khóa API) đến dịch vụ của bên thứ ba.
Các bước:
- Chọn yếu tố kích hoạt Product status updated cho phép bạn thử nghiệm dòng công việc này bằng cách thay đổi trạng thái trên một sản phẩm.
- Thêm thao tác Send HTTP Request vào dòng công việc và kết nối với yếu tố kích hoạt. Sau đó, mở bảng cấu hình bằng cách nhấp vào bước Send HTTP Request .
- Trong trường HTTP Method, hãy nhập
POST. - Trong trường URL, hãy nhập URL để thử nghiệm, ví dụ như
https://yourFlowTest.requestcatcher.com/test. - Trong phần Headers, hãy nhập tiêu đề với Key là
Content-Typevà Value làtext/plain. - Trong phần Body, hãy nhập
{{product.title}}và{{product.status}}để gửi tiêu đề và trạng thái đã cập nhật của sản phẩm từ yếu tố kích hoạt.
- Trong trường HTTP Method, hãy nhập
- Kích hoạt dòng công việc.
- Thử nghiệm bằng cách thay đổi trạng thái của Sản phẩm, ví dụ như từ Bản nháp sang Đang hoạt động.
- Quan sát kết quả trong dịch vụ thử nghiệm bên ngoài, ví dụ như
https://yourFlowTest.requestcatcher.com/trong ví dụ này.
Ví dụ 2: Dùng thao tác Run code để phân tích cú pháp phản hồi HTTP
Trong ví dụ này, hãy dùng Flow để gửi yêu cầu HTTP đến một dịch vụ bên ngoài, đồng thời dùng thao tác Run code để phân tích cú pháp body của phản hồi HTTP nhằm sử dụng trong các bước tiếp theo của dòng công việc.
Trước khi bắt đầu, hãy chọn dịch vụ web nhận yêu cầu HTTP và trả về dữ liệu, ví dụ như Postman Echo. Hãy nhớ thận trọng khi gửi dữ liệu nhạy cảm (như mật khẩu hoặc khóa API) đến dịch vụ của bên thứ ba.
Các bước:
Chọn yếu tố kích hoạt Product status updated cho phép bạn thử nghiệm dòng công việc này bằng cách thay đổi trạng thái trên một sản phẩm.
Thêm thao tác Send HTTP Request vào dòng công việc và kết nối với yếu tố kích hoạt. Sau đó, mở bảng cấu hình bằng cách nhấp vào bước Send HTTP Request.
Trong trường HTTP Method, hãy nhập
POST.Trong trường URL, hãy nhập URL để thử nghiệm, ví dụ như
https://postman-echo.com/post.Trong phần Headers, hãy nhập tiêu đề với Key là
Content-Typevà Value làapplication/json.Trong phần Body, hãy nhập tệp JSON mẫu để trả về cho dòng công việc, ví dụ như:
{ "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
Thêm thao tác Run code vào dòng công việc và kết nối với thao tác Send HTTP request. Sau đó, mở bảng cấu hình bằng cách nhấp vào bước Run code.
Trong trường Define inputs, hãy đưa vào
bodydo đối tượngsendHTTPrequesttrả về, ví dụ như:query{ sendHttpRequest { body } }Trong trường Define outputs, hãy xác định trong giản đồ đầu ra, ví dụ như:
type Output { productTitle: String! productStatus: String! }Trong trường Write code, hãy phân tích cú pháp phản hồi bằng phương thức
JSON.parsevà đảm bảo rằng dữ liệu bạn trả về khớp với hình dạng và các loại đã xác định trong giản đồ đầu ra, ví dụ như:export default function main(input) { const body = JSON.parse(input.sendHttpRequest.body); console.log("body is", body); return { productTitle: body.data.productTitle, productStatus: body.data.productStatus } }
Thêm thao tác Log output vào dòng công việc và kết nối với thao tác Run code. Sau đó, mở bảng cấu hình bằng cách nhấp vào bước Run code.
Trong trường Output, hãy đưa vào các biến do bước Run code trả về, ví dụ như:
Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
Kích hoạt dòng công việc.
Thử nghiệm bằng cách thay đổi trạng thái của Sản phẩm, ví dụ như từ Bản nháp sang Đang hoạt động.
Quan sát lần chạy thu được từ trang Flow / Lần chạy gần đây và lưu ý rằng các giá trị ở bước Log output khớp với các giá trị được trả về từ đầu ra Send HTTP request.
Mẫu
Thông báo cho nhà cung cấp dịch vụ xử lý đơn hàng về các đơn hàng sắp tới
Gửi yêu cầu HTTP đến nhà cung cấp dịch vụ xử lý đơn hàng khi đơn hàng được gắn thẻ "Warehouse" trong Order Tagger. Xem mẫu
Gửi đơn hàng mới đến Airtable
Gửi đơn hàng đến Airtable khi đơn hàng được tạo. Xem mẫu
Gửi tất cả sản phẩm hiện tại và mới đến Airtable
Cứ 10 phút một lần, tìm những sản phẩm chưa được gửi đến Airtable (theo thẻ) rồi gửi đến Airtable. Xem mẫu
Cập nhật sản phẩm theo lô từ dữ liệu sản phẩm lưu trong Airtable
Cập nhật sản phẩm theo lô từ dữ liệu sản phẩm lưu trong Airtable. Xem mẫu
Thông báo cho khách hàng về thẻ quà tặng sắp hết hạn bằng SendGrid
Mỗi ngày, lấy tất cả thẻ quà tặng sẽ hết hạn trong 7 ngày tới rồi dùng SendGrid để gửi email cho khách hàng. Xem mẫu
Gửi email bằng SendGrid khi khách hàng đặt hàng mặt hàng tùy chỉnh
Gửi email giao dịch bằng SendGrid khi khách hàng đặt hàng mặt hàng tùy chỉnh. Xem mẫu