HTTP

HTTPoutput

image0

Осуществляет вызов REST API к серверу REST. Используется выбранный метод. В качестве тела запроса используются входные данные в формате JSON. Заголовки будут взяты также из настроек блока. Если установлен флаг “Динамическая настройка”, то блок будет применять настройки, которые должны быть переданы через метадату посылки внутри объекта HTTPoutput.

Конфигурация узла:

image1

  • URI - адрес REST API сервера str

  • Заголовки - указывает тип данных, передаваемых в теле сообщения, что помогает клиенту и серверу правильно интерпретировать содержимое.

  • Метод - HTTP методы определяют действия, которые клиент хочет выполнить с ресурсом на сервере, такие как GET (получение данных), POST (отправка данных), PUT (обновление данных) и DELETE (удаление данных). str

При использовании метода GET - body не устанавливается.

body - заполняется элементами из DATA и отправляется как строка str


Динамическая настройка (Пример объекта METADATA.HTTPoutput):

Json

{
  "uri": "http://scada.4iot.pro/api/example_journal_event",
  "payload": "Example payload",
  "headers":{
    "FirstHeader": "ValueOfFirsHeader",
    "SecondHeader": "ValueOfSecondHeader"
  },
  "s3":{
    "file": "file.xml",
    "bucket": "example_bucket",
    "contentType": "aplication/xml",
    "server": "yandex.cloud",
    "key": "some_key",
    "secret":"some_secrte_key"
  }
}

Единственное обязательное поле в объекте настроек HTTPoutput это uri, остальные добавляются по необходимости.

При использовании динамической настройки в тело запроса не будут включены входные данные, а будет использовано содержимое поля payload, если оно есть. Если этого поля нет, то тело запроса останется пустым.

Можно указать метод при помощи поля method (по умолчанию: POST)

Поле “headers” содержит заголовки, которые необходимо добавить к запросу. Также будут добавлены и заголовки, добавленные через форму настройки блока. Блок HTTP output поддерживает AWS s3 авторизацию для доступа к bucket серверу.

Она настраивается полем s3:

  • file - указывается имя файла к которому запрашивается доступ. str

  • bucket - имя хранилища str

  • contentType - указывается формат запрашиваемого файла в спецификации http str

  • server - содержит адрес или домен сервера с хранилищем str

  • key - должен содержать идентификатор ключа str

  • secret - содержит ключ str


Пример использования

Для проверки того, что наш блок работает исправно, воспользуемся сервисом Request Inspector. Следует создать конечный хост и скопировать ссылку на него.

В качестве примера соберем такую цепочку:

image2

Полученную ссылку мы ставим в URI, а поле Заголовки заполняем для чтения json объектов application/json (смотреть картинку ниже). Чтобы наша посылка отобразилась, выберем метод POST.

image3

После сохранения цепочки мы сможем наблюдать на сервисе подобную картину:

image4

image5

Данный код вставляется в блок Python:

import json
data = {
    "uri": "https://01j4kjf5rcfm5e2fdafbxgmcy800-734a5890450a402edd6c.requestinspector.com",
    "payload": obj["DATA"],
    "method": "POST",
    "headers":{
      "Content-Type": "application/json"
}}

obj['METADATA']["HTTPoutput"]={}
obj['METADATA']["HTTPoutput"]= data
return obj

Получаем такой-же результат, что и в первом случае.