- Описание функциональных характеристик системы
- Поддержание жизненного цикла
- Установка PromUC
- Настройка сервисов
- Обновление PromUC
- Резервное копирование и восстановление базы данных Promuc FrameWork
- Рекомендации по безопасности
- Руководство по эксплуатации и администрированию
- Module GIS
- Конфигурирование правил и сценариев
- Module Framework
- Module Interface
- Технологии проекта
- Эксплуатация КТС
- Единый сервис аутентификации
- Информация о релизах
HTTP¶
HTTPoutput
Осуществляет вызов REST API к серверу REST. Используется выбранный метод. В качестве тела запроса используются входные данные в формате JSON. Заголовки будут взяты также из настроек блока. Если установлен флаг “Динамическая настройка”, то блок будет применять настройки, которые должны быть переданы через метадату посылки внутри объекта HTTPoutput.
Конфигурация узла:¶
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. Следует создать конечный хост и скопировать ссылку на него.
В качестве примера соберем такую цепочку:
Полученную ссылку мы ставим в URI, а поле Заголовки заполняем
для чтения json объектов application/json
(смотреть картинку ниже).
Чтобы наша посылка отобразилась, выберем метод POST.
После сохранения цепочки мы сможем наблюдать на сервисе подобную картину:
Данный код вставляется в блок 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
Получаем такой-же результат, что и в первом случае.