6.6. HTTP 요청을 지정하는 방법


다음 예제에서는 Fuse Online Webhook에 대한 HTTP 요청을 지정하는 방법을 보여줍니다.

HTTP 본문만 포함하는 POST 요청의 Webhook 예

Webhook 연결로 시작된 통합을 고려한 다음 Fuse Online 제공 데이터베이스의 Todo 테이블에 행을 만듭니다.

Webhook-Data Mapper-DB integration

이 통합을 생성하는 동안 Webhook 시작 연결을 추가할 때 이 콘텐츠가 있는 JSON 인스턴스로 출력 데이터 유형을 지정합니다. {"todo":"text"}:

Specify Data Shape Image

PostgresDB 연결을 완료 연결로 추가하면 Invoke SQL 작업을 선택하고 이 SQL 문을 지정합니다.

TODO (TASK) 값 (:#TASK)을 삽입합니다.

데이터베이스 연결을 추가한 후 매핑 단계를 추가합니다.

Map Todo to Task

통합을 저장하고 게시합니다. 실행 중인 경우 Fuse Online에서 제공하는 외부 URL을 복사할 수 있습니다.

External URL

외부 URL의 일부를 이해하려면 다음 샘플 URL을 고려하십시오.

https://i-webhook-to-db-myproject.192.168.64.4.nip.io/webhook/bvGvQdpq308BcHIQQYeysFOK4plFISmghNHkRyOOk3YppitvOd

현재의설명

i-

Fuse Online에서는 항상 이 값을 URL 시작 부분에 삽입합니다.

webhook-to-db

통합의 이름입니다.

myproject

통합을 실행 중인 포드가 포함된 OpenShift 네임스페이스입니다.

192.168.64.4.nip.io

OpenShift용으로 구성된 DNS 도메인입니다. Webhook를 제공하는 Fuse Online 환경이 표시됩니다.

webhook

각 Webhook 연결 URL에 표시됩니다.

bvGvQdpq308BcHIQQYeysFOK4plFISmghNHkRyOOk3YppitvOd

통합에 Webhook 연결을 추가할 때 Fuse Online에서 제공하는 Webhook 연결 토큰입니다. 토큰은 URL을 식별하기가 어려워서 다른 사람이 요청을 보내지 못하도록 한다는 점에서 보안을 제공하는 임의의 문자열입니다.

요청에서는 Fuse Online에서 제공하는 토큰을 지정하거나 자체적으로 정의할 수 있습니다. 자신을 정의하는 경우 추측하기가 어려운지 확인하십시오.

외부 URL에서 볼 수 있듯이 Fuse Online은 통합 이름, OpenShift 네임스페이스 이름 및 OpenShift DNS 도메인에서 호스트 이름을 구성합니다. Fuse Online에서는 불법 문자를 제거하고 공백을 하이픈으로 변환합니다. 샘플 외부 URL에서 호스트 이름입니다.

https://i-webhook-to-db-myproject.192.168.64.4.nip.io

curl 을 사용하여 Webhook를 호출하려면 다음과 같이 명령을 지정합니다.

curl -H 'Content-Type: application/json' -d '{"todo":"from webhook"}' https://i-webhook-to-db-myproject.192.168.64.4.nip.io/webhook/bvGvQdpq308BcHIQQYeysFOK4plFISmghNHkRyOOk3YppitvOd

  • H 옵션은 HTTP Content-Type 헤더를 지정합니다.
  • d 옵션은 기본적으로 HTTP 메서드를 POST 로 설정합니다.

이 명령을 실행하면 통합을 트리거합니다. 데이터베이스 완료 연결은 새 작업을 tasks 테이블에 삽입합니다. 이를 보려면 https://todo-myproject.192.168.64.4.nip.io 에서 업데이트를 클릭하면 Webhook에서 새 작업으로 표시되는 Todo 앱을 표시합니다.

쿼리 매개변수를 사용한 POST 요청의 예

이 예제에서는 이전 예와 동일한 통합을 고려하십시오.

Webhook-Data Mapper-DB integration

그러나 이 예제에서는 이 콘텐츠로 JSON 스키마를 지정하여 Webhook 연결 출력 데이터 유형을 정의합니다.

{
  "type": "object",
  "definitions": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "id": "io:syndesis:webhook",
  "properties": {
    "parameters": {
      "type": "object",
      "properties": {
        "source": {
          "type": "string"
        },
        "status": {
          "type": "string"
        }
      }
    },
    "body": {
      "type": "object",
      "properties": {
        "company": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        }
      }
    }
  }
}

이 JSON 스키마에서 다음을 수행합니다.

  • idio.syndesis.webhook 로 설정해야 합니다.
  • parameters 섹션에서는 HTTP 쿼리 매개변수를 지정해야 합니다.
  • 본문 섹션은 본문 내용을 지정해야 하며 필요한 만큼 복잡할 수 있습니다. 예를 들어 중첩 속성 및 배열을 정의할 수 있습니다.For example, it can define nested properties as well as arrays.

그러면 Webhook 커넥터가 통합의 다음 단계를 위해 콘텐츠를 준비하는 데 필요한 정보가 제공됩니다.

curl 을 사용하여 HTTP 요청을 보내려면 다음과 같은 명령을 호출합니다.

curl -h 'Content-Type: application/json' -d '{"company":"Gadgets","email":" ","phone":"+1-202-555-0152"}'https://i-webhook-params-to-db-myproject.192.168.42.235.nip.io/webhook/ZYWrhaW7dVk097vNsLX3YJ1GyxUFMFRteLpw0z4O69MW7d2Kjg?source=web&status=newmailto:sales@gadgets.com

Webhook 연결이 이 요청을 수신하면 다음과 같은 JSON 인스턴스가 생성됩니다.

{
  "parameters": {
    "source": "web",
    "status": "new"
  },
  "body": {
    "company": "Gadgets",
    "email": "sales@gadgets.com",
    "phone": "+1-202-555-0152"
  }
}

이 내부 JSON 인스턴스는 다음 매핑을 활성화합니다.

Map to Add Lead

GET이 있는 Webhook 예

입력 데이터를 제공하지 않는 GET 요청과의 통합을 트리거하려면 '{}' 정의를 사용하여 Webhook 연결 출력 데이터 모양을 JSON 인스턴스로 지정합니다. 그런 다음 쿼리 매개변수를 지정하지 않는 다음 curl 명령을 호출할 수 있습니다.

curl 'https://i-webhook-params-to-db-myproject.192.168.42.235.nip.io/webhook/ZYWrhaW7dVk097vNsLX3YJ1GyxUFMFRteLpw0z4O69MW7d2Kjg'

이전 POST 예제를 변경하여 쿼리 매개변수로 GET 요청을 보낼 수 있지만 본문은 전송할 수 없습니다. 다음과 같이 Webhook 연결 출력 데이터 모양을 정의를 사용하여 JSON 스키마로 지정합니다.

{
  "type": "object",
  "definitions": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "id": "io:syndesis:webhook",
  "properties": {
    "parameters": {
      "type": "object",
      "properties": {
        "source": {
          "type": "string"
        },
        "status": {
          "type": "string"
        }
      }
    }
  }
}

GET 요청을 보내는 curl 명령은 다음과 같습니다.

curl 'https://i-webhook-params-to-db-myproject.192.168.42.235.nip.io/webhook/ZYWrhaW7dVk097vNsLX3YJ1GyxUFMFRteLpw0z4O69MW7d2Kjg?source=web&status=new'`

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.