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.

Các trường được dùng trong hành động Gửi yêu cầu HTTP.
TrườngMô tả
Phương thức HTTPPhươ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:
  • Get - Gửi yêu cầu lấy thông tin từ máy chủ.
  • Delete - Xóa tài nguyên khỏi máy chủ.
  • Head - Truy xuất tiêu đề phản hồi HTTP của máy chủ.
  • Options - Truy xuất các tùy chọn và tính năng do máy chủ hỗ trợ.
  • Patch - Cập nhật một phần tài nguyên trên máy chủ.
  • Put - Cập nhật tài nguyên trên máy chủ.
  • Post - Tạo hoặc thay thế tài nguyên trên máy chủ.
URLURL 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 dungNộ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ẽ:
  • Thử lại - Thử lại trong vòng tối đa 24 giờ cho đến khi nhận được mã phản hồi khác hoặc hết thời gian chờ.
  • 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.
  • Bỏ qua - Bỏ qua lỗi và tiếp tục lần chạy dòng công việc.
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ẽ:
  • Thử lại - Thử lại trong vòng tối đa 24 giờ cho đến khi nhận được mã phản hồi khác hoặc hết thời gian chờ.
  • 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.
  • Bỏ qua - Bỏ qua lỗi và tiếp tục lần chạy dòng công việc.

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.

Cách Flow xử lý mã phản hồi HTTP.
Mã phản hồi HTTPCách Flow xử lý mã phản hồi
Thành công 2XX hoặc 3XXFlow đá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ẽ:
  • Thử lại - Thử lại trong vòng tối đa 24 giờ cho đến khi nhận được mã phản hồi khác hoặc hết thời gian chờ.
  • 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.
  • Bỏ qua - Bỏ qua lỗi và tiếp tục lần chạy dòng công việc.
Mã phản hồi khácNế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:

  1. 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.
  2. 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 KeyContent-TypeValuetext/plain.
    • Trong phần Body, hãy nhập {{product.title}}{{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.
  3. Kích hoạt dòng công việc.
  4. 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.
  5. 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:

  1. 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.

  2. 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 KeyContent-TypeValueapplication/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}}"
      }
  3. 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 body do đối tượng sendHTTPrequest trả 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.parse và đả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
        }
      }
  4. 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}}
  5. Kích hoạt dòng công việc.

  6. 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.

  7. 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