HTTP 요청 보내기
HTTP 요청 보내기 작업은 워크플로를 웹 서버 또는 URL에 연결하고 HTTP 요청을 보냅니다.
Flow에서 HTTP 요청을 보낸 후 최대 30초 동안 HTTP 응답 코드를 기다립니다. 30초 후에도 응답을 받지 못하면 Flow는 앱 연결을 닫습니다. 나중에 요청을 다시 시도합니다.
필드
HTTP 요청 보내기 작업에는 다음 필드가 포함됩니다.
| 필드 | 설명 |
|---|---|
| HTTP 메소드 | 전송할 HTTP 요청의 메소드입니다. HTTP 요청 보내기 작업은 다음 메소드를 지원합니다.
|
| URL | HTTP 요청이 전송되는 서버의 URL입니다. |
| 머리글 | HTTP 요청의 키 및 값 페어입니다. 여러 키-값 페어를 입력할 수 있습니다. |
| 본문 | 서버로 전송될 콘텐츠입니다. |
| 클라이언트 오류(4XX 응답) 시 | 클라이언트 오류를 나타내는 응답 코드 를 수신하면 Flow는 다음을 수행합니다.
|
| 서버 오류(5XX 또는 429 응답) 시 | 클라이언트 오류를 나타내는 응답 코드 가 서버 오류를 나타내는 경우 Flow는 다음을 수행합니다.
|
반환된 데이터
이 작업 다음에 오는 단계에서 반환된 데이터에 액세스하려면 HTTP 응답의 모든 세부 정보가 포함된 sendHttpRequest 변수를 사용하십시오. 선택적으로 코드 실행 작업을 사용하여 아래 예와 같이 후속 워크플로 단계에서 사용할 응답의 body를 구문 분석할 수 있습니다.
단일 워크플로에서 HTTP 요청 보내기 작업이 여러 번 사용되는 경우 변수 이름에 숫자가 추가됩니다. 예를 들어 HTTP 요청 보내기 작업을 두 번 사용하는 워크플로에서 반환된 데이터의 첫 번째 변수는 sendHttpRequest이고 두 번째 변수는 sendHttpRequest1입니다. 이 이름은 사용자 지정할 수 없습니다.
응답 코드
다음 표에서는 Flow가 응답을 수신한 후 HTTP 응답 코드를 처리하는 방법을 설명합니다.
| HTTP 응답 코드 | Flow의 응답 코드 처리 방법 |
|---|---|
| 2XX 또는 3XX 성공 | Flow는 HTTP 요청을 성공으로 표시하고 워크플로에서 후속 작업을 수행합니다. |
| 4XX 오류, 5XX 및 429 오류 | 작업이 구성된 방식에 따라 Flow는 다음을 수행합니다.
|
| 기타 응답 코드 | 응답이 이 표에 설명되지 않은 코드를 반환하거나 작업 재시도 시 시간 초과가 발생하는 경우, Flow는 HTTP 요청을 실패로 표시하고 워크플로 실행을 실패 처리하며 후속 워크플로 작업을 수행하지 않습니다. |
시크릿
비밀은 액세스 토큰이나 비밀번호 등 HTTP 요청 보내기 작업에서 사용할 민감한 정보를 안전하게 저장하는 데 사용됩니다. 비밀은 Flow > 설정 페이지에서 생성 및 관리됩니다. 비밀에는 핸들, 값 및 설명이 포함됩니다. URL, 머리글 값 또는 본문 필드를 구성할 때 비밀을 Liquid 변수(예: {{secrets.handle}})로 참조하거나 비밀 추가 옵션에서 참조하십시오. 비밀 값은 Flow 인터페이스에 절대 표시되지 않으며 워크플로 실행 로그에서 숨겨집니다.
트리거
HTTP 요청 보내기 작업은 모든 워크플로에서 사용할 수 있습니다.
예
예 1: 외부 서비스로 HTTP 요청 보내기
이 예에서는 Flow를 사용하여 외부 서비스로 HTTP 요청을 보냅니다.
시작하기 전에 Request Catcher와 같이 HTTP 요청을 수신하고 테스트를 위해 해당 요청의 데이터를 저장하는 웹 서비스를 구성하십시오. 타사 서비스에 민감한 데이터(예: 암호 또는 API 키)를 보낼 때는 주의해야 합니다.
단계:
- 제품의 상태를 변경하여 이 워크플로를 테스트할 수 있는 제품 상태 업데이트됨 트리거를 선택합니다.
- 워크플로에 HTTP 요청 보내기 작업을 추가하고 트리거에 연결합니다. 그런 다음 HTTP 요청 보내기 단계를 클릭하여 구성 패널을 엽니다.
- HTTP 메서드 필드에
POST를 입력합니다. - URL 필드에
https://yourFlowTest.requestcatcher.com/test와 같이 테스트할 URL을 입력합니다. - 머리글 섹션에서 키가
Content-Type이고 값이text/plain인 머리글을 입력합니다. - 본문 섹션에
{{product.title}}및{{product.status}}를 입력하여 트리거에서 제품의 제목과 업데이트된 상태를 보냅니다.
- HTTP 메서드 필드에
- 워크플로를 활성화합니다.
- 예를 들어 제품의 상태를 초안에서 활성으로 변경하여 테스트합니다.
- 이 예시의
https://yourFlowTest.requestcatcher.com/과 같은 외부 테스트 서비스에서 결과를 관찰합니다.
예시 2: 코드 실행을 사용하여 HTTP 응답 구문 분석
이 예시에서는 Flow를 사용하여 외부 서비스로 HTTP 요청을 보내고 코드 실행 작업을 사용하여 후속 워크플로 단계에서 사용할 HTTP 응답의 body를 구문 분석합니다.
시작하기 전에 Postman Echo와 같이 HTTP 요청을 수신하고 데이터를 반환하는 웹 서비스를 선택하십시오. 타사 서비스에 비밀번호나 API 키 등 민감한 데이터를 보낼 때는 주의해야 합니다.
단계:
제품의 상태를 변경하여 이 워크플로를 테스트할 수 있는 제품 상태 업데이트됨 트리거를 선택합니다.
워크플로에 HTTP 요청 보내기 작업을 추가하고 트리거에 연결합니다. 그런 다음 HTTP 요청 보내기 단계를 클릭하여 구성 패널을 엽니다.
HTTP 메서드 필드에
POST를 입력합니다.URL 필드에
https://postman-echo.com/post와 같이 테스트할 URL을 입력합니다.머리글 섹션에서 키가
Content-Type이고 값이application/json인 머리글을 입력합니다.본문 섹션에 워크플로로 반환할 예시 JSON을 다음과 같이 입력합니다.
{ "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
워크플로에 코드 실행 작업을 추가하고 HTTP 요청 보내기 작업에 연결합니다. 그런 다음 코드 실행 단계를 클릭하여 구성 패널을 엽니다.
입력 정의 필드에
sendHTTPrequest개체에서 반환된body를 다음과 같이 포함합니다.query{ sendHttpRequest { body } }출력 정의 필드에 출력 스키마에 정의된 내용을 다음과 같이 입력합니다.
type Output { productTitle: String! productStatus: String! }코드 작성 필드에서
JSON.parse메서드를 사용하여 응답을 구문 분석하고 반환하는 데이터가 출력 스키마에 정의된 모양 및 유형과 일치하는지 확인합니다(예:).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 } }
워크플로에 출력 기록 작업을 추가하고 코드 실행 작업에 연결합니다. 그런 다음 코드 실행 단계를 클릭하여 구성 패널을 엽니다.
출력 필드에 코드 실행 단계에서 반환된 변수를 다음과 같이 포함합니다.
Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
워크플로를 활성화합니다.
예를 들어 제품의 상태를 초안에서 활성으로 변경하여 테스트합니다.
Flow/최근 실행 페이지에서 결과 실행을 관찰하고 출력 기록 단계의 값이 HTTP 요청 보내기 출력에서 반환된 값과 일치하는지 확인합니다.
템플릿
예정된 주문에 대해 주문 처리 공급업체에 알림
Order Tagger에서 주문에 “Warehouse” 태그가 지정되면 주문 처리 공급업체에 HTTP 요청을 보냅니다. 템플릿 보기
Airtable로 새 주문 보내기
주문이 생성되면 Airtable로 주문을 보냅니다. 템플릿 보기
모든 기존 제품과 새 제품을 Airtable로 보내기
10분마다 Airtable로 전송되지 않은 제품(태그 기준)을 찾아 Airtable로 보냅니다. 템플릿 보기
Airtable에 저장된 제품 데이터로 제품 일괄 업데이트
Airtable에 저장된 제품 데이터로 제품을 일괄 업데이트합니다. 템플릿 보기
SendGrid를 사용하여 만료되는 기프트 카드에 대해 고객에게 알림
매일 7일 후에 만료되는 모든 기프트 카드를 가져와 SendGrid를 사용하여 고객에게 이메일을 보냅니다. 템플릿 보기
고객이 사용자 지정 품목을 주문할 때 SendGrid를 사용하여 이메일 보내기
고객이 사용자 지정 품목을 주문하면 SendGrid를 사용하여 거래 이메일을 보냅니다. 템플릿 보기