Перейти к основному содержимому

Узел api

Этот узел позволяет взаимодействовать с различными API, что полезно для интеграции с внешними сервисами.


Настройки узла API

IMG2

1. Name

Поле для указания имени узла.
Имя отображается в рабочей области и помогает легко идентифицировать узел.
Если оставить пустым, узел будет называться API.

Пример:

  • Имя узла: Create Payment Session

2. Method

Здесь выбирается метод API, который будет использоваться для отправки запроса. Доступные методы:

  • "Create Payment Session" (Создание сессии оплаты):
    Создает новую сессию оплаты.

  • "Update Payment Session" (Обновление сессии оплаты):
    Обновляет существующую сессию оплаты.

  • "Get Payment Session by ID" (Получение сессии оплаты по ID):
    Получает информацию о сессии оплаты по уникальному идентификатору сессии.

  • "Get Payment Session by Order ID" (Получение сессии оплаты по Order ID):
    Получает информацию о сессии оплаты, используя идентификатор заказа.

  • "Create Collection Row" (Создание записи в коллекции):
    Получает новую запись в коллекции.

  • "Update Collection Row" (Обновление записи в коллекции):
    Обновляет существующую запись в коллекции.

  • "Get Collection Row" (Получение записи в коллекции):
    Получает запись коллекции.

  • "Find Collection Rows" (Поиск записей в коллекции):
    Получает несколько записей в коллекции по параметрам.

  • "Update Order Status" (Обновление статуса заказа):
    Обновляет статус заказа.

  • "Find Order by Status" (Поиск заказа по статусу):
    Получение нескольких заказов по его статусу.

Пример:

  • Метод: Create Payment Session

3. Data

Это поле использует шаблон Mustache для формирования данных запроса в формате JSON.
Вы можете использовать данные из сообщения msg для подстановки значений в шаблон.

Пример шаблона (для метода "Create Payment Session"):

 {
"orderId": {{orderId}},
"type": "session"
}

В этом примере значение orderId будут подставлены из сообщения msg.

Пример шаблона (для метода "Update Payment Session"):

 {
"id": {{paymentSessionId}},
"paymentUrl": "{{{payload.links.1.href}}}"
}

При использовании шаблонов Mustache вы можете передавать сложные данные и параметры, необходимые для взаимодействия с API.


Примеры запросов

Пример 1: Создание платежной сессии

Настройки узла:

  • Method (Метод): Create Payment Session
  • Data (Данные):
    {
    "orderId": {{orderId}},
    "type": "session"
    }

Сообщение:

{
"orderId": 123
}

Результат:
Узел отправит запрос для создания сессии оплаты с данными из сообщения. В результате будет получена информация о новой сессии оплаты.


Пример 2: Обновление платежной сессии

Настройки узла:

  • Method (Метод): Update Payment Session
  • Data (Данные):
    {
    "id": {{paymentSessionId}},
    "paymentUrl": "{{{payload.links.1.href}}}"
    }

Сообщение:

{
"paymentSessionId": 123,
"payload": {
"id": "8YP51523N05861826",
....
"links": [
{
"href": "https://api.sandbox.paypal.com/v2/checkout/orders/8YP51523N05861826",
"rel": "self",
"method": "GET"
},
{
"href": "https://www.sandbox.paypal.com/checkoutnow?token=8YP51523N05861826",
"rel": "payer-action",
"method": "GET"
}
]
}
}

Результат:
Узел отправит запрос для обновления статуса сессии оплаты, используя предоставленные значения payment_session_id и status.


Пример 3: Получение сессии оплаты по ID

Настройки узла:

  • Method (Метод): Get Payment Session by ID
  • Data (Данные):
    {
    "id": "{{paymentSessionId}}"
    }

Сообщение:

{
"paymentSessionId": 123
}

Результат:
Узел отправит запрос для получения информации о сессии оплаты по уникальному идентификатору сессии.


Пример 4: Получение сессии оплаты по Order ID

Настройки узла:

  • Method (Метод): Get Payment Session by Order ID
  • Data (Данные):
    {
    "orderId": "{{payload.id}}"
    }

Сообщение:

{
"payload": {
"id": 1
}
}

Результат:
Узел отправит запрос для получения информации о сессии оплаты, связанной с указанным идентификатором заказа.


Пример 5: Создание записи в коллекции

Настройки узла:

  • Method (Метод): Create Collection Row
  • Data (Данные):
    {
    "collectionIdentifier": "delivery",
    "formData": {
    "en_US": [
    {
    "marker": "tracking_number",
    "value": "12345678910",
    "type": "string"
    }
    ]
    },
    "formIdentifier": "delivery_form",
    "entityId": 1,
    "entityType": "orders",
    "langCode": "en_US"
    }

Сообщение:

{
"payload": {
"id": 1,
"collectionIdentifier": "delivery",
"formData": {
"en_US": [
{
"marker": "tracking_number",
"value": "1234567890",
"type": "string"
}
]
},
"formIdentifier": "delivery_form",
"entityId": 1,
"entityType": "orders",
"langCode": "en_US"
}
}

Результат:
Узел отправит запрос для создания записи в коллекции и вернёт запись в msg.payload.


Пример 6: Обновление записи в коллекции

Настройки узла:

  • Method (Метод): Update Collection Row
  • Data (Данные):
    {
    "id": 1,
    "collectionIdentifier": "delivery",
    "formData": {
    "en_US": [
    {
    "marker": "tracking_number",
    "value": "098765431",
    "type": "string"
    }
    ]
    },
    "formIdentifier": "delivery_form",
    "entityId": 1,
    "entityType": "orders",
    "langCode": "en_US"
    }

Сообщение:

{
"payload": {
"id": 1,
"collectionIdentifier": "delivery",
"formData": {
"en_US": [
{
"marker": "tracking_number",
"value": "098765431",
"type": "string"
}
]
},
"formIdentifier": "delivery_form",
"entityId": 1,
"entityType": "orders",
"langCode": "en_US"
}
}

Результат:
Узел отправит запрос для обновления записи в коллекции и вернёт запись в msg.payload.


Пример 7: Получение записи в коллекции

Настройки узла:

  • Method (Метод): Get Collection Row
  • Data (Данные):
    {
    "id": 1,
    "collectionIdentifier": "delivery",
    "langCode": "en_US"
    }

Сообщение:

{
"payload": {
"id": 1,
"collectionIdentifier": "delivery",
"formData": {
"en_US": [
{
"marker": "tracking_number",
"value": "098765431",
"type": "string"
}
]
},
"formIdentifier": "delivery_form",
"entityId": 1,
"entityType": "orders",
"langCode": "en_US"
}
}

Результат:
Узел отправит запрос для получения записи в коллекции и вернёт запись в msg.payload.


Пример 8: Поиск записей в коллекции

Настройки узла:

  • Method (Метод): Find Collection Rows
  • Data (Данные):
    {
    "collectionIdentifier": "delivery",
    "entityId": 1,
    "entityType": "orders",
    "langCode": "en_US",
    "limit": 10,
    "offset": 0
    }

Сообщение:

{
"data": [
{
"payload": {
"id": 1,
"collectionIdentifier": "delivery",
"formData": {
"en_US": [
{
"marker": "tracking_number",
"value": "098765431",
"type": "string"
}
]
},
"formIdentifier": "delivery_form",
"entityId": 1,
"entityType": "orders",
"langCode": "en_US"
}
}
],
"total": 1
}

Результат:
Узел отправит запрос для получения записей в коллекции и вернёт результат в msg.payload.


Пример 9: Обновление статуса заказа

Настройки узла:

  • Method (Метод): Update Order Status
  • Data (Данные):
    {
    "orderId": 1,
    "storageId": "test_order_storage",
    "statusIdentifier": "ready_for_pickup"
    }

Сообщение:

{
"id": 1,
"storageId": 1,
"createdDate": "2025-01-24T05:21:48.196Z",
"statusIdentifier": "ready_for_pickup",
"formIdentifier": "order_test",
"formData": [
{
"marker": "name",
"value": "Alex",
"type": "string"
}
],
"attributeSetIdentifier": "orders_form_set",
"totalSum": "10.00",
"currency": "usd",
"paymentAccountIdentifier": "paypal",
"paymentAccountLocalizeInfos": {
"en_US": {
"title": "custom"
}
},
"products": [
{
"id": 25,
"title": "TShort",
"sku": null,
"previewImage": null,
"price": 10,
"quantity": 1
}
]
}

Результат:
Узел отправит запрос для обновления статуса заказа и вернёт результат в msg.payload.


Пример 10: Поиск заказа по статусу

Настройки узла:

  • Method (Метод): Find Order by Status
  • Data (Данные):
    {
    "storageId": "test_order_storage",
    "statusIdentifier": "ready_for_pickup"
    }

Сообщение:

{
"items": {
"id": 1,
"storageId": 1,
"createdDate": "2025-01-24T05:21:48.196Z",
"statusIdentifier": "ready_for_pickup",
"formIdentifier": "order_test",
"formData": [
{
"marker": "name",
"value": "Alex",
"type": "string"
}
],
"attributeSetIdentifier": "orders_form_set",
"totalSum": "10.00",
"currency": "usd",
"paymentAccountIdentifier": "paypal",
"paymentAccountLocalizeInfos": {
"en_US": {
"title": "custom"
}
},
"products": [
{
"id": 25,
"title": "TShort",
"sku": null,
"previewImage": null,
"price": 10,
"quantity": 1
}
]
},
"total": 1
}

Результат:
Узел отправит запрос для поиска заказов по статусу и вернёт результат в msg.payload.