Обзор HTTP-коннекторов
  • 31 Oct 2023
  • 6 Минуты для чтения
  • Авторы

Обзор HTTP-коннекторов


Вводный текст

Это руководство поможет вам понять все возможности HTTP-коннекторов.

Если вы хотите подключить к Tulip внешнюю систему, например, MES или ERP, вам необходимо использовать HTTP-коннектор. HTTP-коннекторы Tulip могут взаимодействовать с большинством типов HTTP API, включая REST и SOAP.

Хотите получить подробную информацию о создании HTTP-коннекторов? Пройдите курс HTTP Connectors University!

Понимание функций коннекторов

Внутри HTTP-коннектора можно написать ряд функций коннектора, которые будут выполнять общие типы HTTP-запросов с использованием предопределенных входных данных. Функции коннектора - это отдельные действия, которые выполняют вызовы API. Функции HTTP-коннектора Tulip поддерживают следующие методы:

  • GET
  • HEAD
  • POST
  • PUT
  • PATCH
  • DELETE

и модификации следующих полей:

  • Имя хоста, Порт и Путь
  • Аутентификация (нет, Basic Auth, OAuth 2)
  • Заголовки запроса
  • Параметры запроса
  • Тело запроса (JSON, URL-код формы, XML или обычный текст)

:::(Info) (ПРИМЕЧАНИЕ) Этот выбор будет влиять на заголовок Content-Type. Например, если вы хотите отправить JSON, используя опцию Plain Text, вы должны вручную указать в заголовках Content-Type "application/json" :::

Затем ответы могут быть обработаны и из них извлечена информация:

  • Заголовки ответа
  • Тело ответа (JSON с помощью json-query или XML с помощью xpath).

HTTP-коннекторы поддерживают следующие типы данных в выходных данных:

  • Текст
  • Целое число
  • Float
  • Boolean
  • Datetime*
  • Объекты со всеми вышеперечисленными типами данных
  • Массивы со всеми вышеперечисленными типами данных

*Поддерживается синтаксический анализ времени:

  • временные метки OData в миллисекундах с 1 января 1970 года по Гринвичу
  • числа, интерпретируемые как миллисекунды с 1 января 1970 г. по Гринвичу
  • строки даты ISO 8601

Создание коннектора

Нажмите кнопку Add Connector в правом верхнем углу страницы Connectors, назовите коннектор и выберите HTTP.

An Overview of HTTP Connectors_122139734.png

После этого появится вкладка Environment. Если вы хотите настроить несколько сред, обратитесь к этому отдельному руководству.

An Overview of HTTP Connectors_122140278.png

Затем, после выбора коннектора, выберите Add Connection Details, чтобы добавить дополнительные сведения о сервере, к которому требуется выполнить запрос.

An Overview of HTTP Connectors_122140947.png

Существует 5 вариантов.

An Overview of HTTP Connectors_122141109.png

Обратитесь к этому руководству по хостам коннекторов.

Хост: Укажите только домен, к которому вы хотите сделать запрос. Не включайте http:// или https://. Например, myaccount.restlet.api.netsuite.com.

Порт: Этот параметр должен быть задан сервисом, к которому выполняется запрос. HTTP-запросы обычно используют порт 443.

TLS: Выберите "Да", если вы используете HTTPS, и "Нет", если просто "HTTP".

Нажмите кнопку Test (Проверить ), чтобы убедиться в успешном подключении к серверу, а затем нажмите кнопку Save (Сохранить).

Чтобы продублировать или удалить коннектор, вернитесь на страницу Коннекторы, а затем щелкните на трех точках справа от конкретного коннектора.

An Overview of HTTP Connectors_122140669.png

Создание функции коннектора

Для создания новой функции нажмите кнопку Add New Function на вкладке Functions.

An Overview of HTTP Connectors_122141271.png

Затем появится ряд опций для редактирования функции.

Сначала дайте имя функции в верхней левой части страницы.

Затем нажмите кнопку Add Function Inputs (Добавить входы функции ), чтобы начать добавлять входы. Пример:

Если вы хотите протестировать свою функцию HTTP-коннектора, добавьте "Test Value" для каждого входа.

Затем добавьте конечную точку в конец URL-адреса и выберите тип HTTP-запроса.

Выберите Query Parameters (Параметры запроса ), чтобы начать добавлять пары ключ/значение. В поле " Значение " используйте заданные вами входные данные.

Добавьте символ $ до и после имени входного параметра, например, если имя входного параметра - "имя_города", введите$city_name$.

Работа с ответами

После того как вы определитесь с входными и выходными данными, выберите Test в правом верхнем углу, чтобы создать образец ответа.

В разделе Test Results вы увидите ответ в формате JSON или XML. Теперь можно сопоставить части этого ответа с выходными данными и затем использовать их в приложениях.

Экстракторы JSON используют синтаксис json-query. Для проверки синтаксиса используйте этот онлайн-инструмент.

Экстракторы XML используют синтаксис XPATH.

Это можно сделать двумя способами:

  1. Щелкнуть на свойствах в теле ответа, чтобы сопоставить их с выходами.
  2. Вручную указать путь с помощью json-запроса.

Вот как можно указать экстракторы с помощью "укажи и щелкни":

Если вы хотите использовать json-запрос, добавьте несколько выходов, чтобы можно было сопоставить содержимое ответа с Tulip.

Далее необходимо указать "extractors" рядом с каждым выходом, чтобы указать данные из тела ответа, которые необходимо сохранить.

Приведем пример с json-запросом: допустим, вы написали GET-запрос, который возвращает массив объектов. Вы хотите вернуть значение свойства name из первого объекта в массиве.

Вот что вы напишете в поле path:

0.name

Вы также можете сохранять значения из раздела Headers and Cookies ответа.

Аналогично разделу выше, в секции Output необходимо указать конкретный вывод. Затем щелкните на части примера ответа или используйте json-запрос для доступа к нужному свойству из JSON в HTTP-ответе.

Здесь приведен пример, в котором выход с именем "csrf_token" сохраняет значение "x-csrf-token" из свойства в заголовке.

При совместном использовании с приложением выходные данные хранятся как свойства объекта. Затем необходимо сохранить объект в переменной в приложении. Более подробная информация приведена в руководстве по использованию выходных данных коннектора в приложениях

Использование RegEx для изменения выходных данных

Для уточнения текстовых значений из ответа можно также использовать RegEx. Для этого добавьте одну из этих функций в поле Path, чтобы передать значение через регулярное выражение:

:regexp()

Чтобы перехватить несколько подстрок внутри строки.

:regexpGroup()

Примеры:

0.name:regexp(^N) 0.name:regexpGroup(^\w + (w+))

Используя RegEx group, можно выделить отдельную группу в более крупной строке. Для этого в конце строки RegEx ставится запятая и добавляется номер конкретной группы в строке.

parts[0].inputs:regexpGroup(^\w\w\s(\w\w)\s(\w\w)\s(\w\w),2)

Или используйте его для выбора конкретного элемента в массиве, который соответствует правилу. Например, первый объект со значением email, начинающимся с n.

.[email:regexp(^N)].

Для тестирования вашего RegEx мы рекомендуем использовать RegExr. Tulip использует механизм JavaScript (ECMA) RegEx.

Работа с объектами и массивами в выходных данных

Tulip поддерживает как объекты, так и массивы в JSON-выводах. Ниже описано, как использовать каждый из них:

Объекты

Чтобы оформить вывод JSON в виде объекта, сначала создайте объект в разделе Outputs, а затем укажите экстрактор.

В приведенном выше примере объект называется "singleObj". Вывод JSON представляет собой массив объектов, поэтому выбирается объект с индексом 0.

Затем начните добавлять выходные данные, соответствующие каждой паре ключ/значение, которую вы хотите сохранить. Добавлять пары ключ/значение можно с помощью кнопки +.

В приведенном примере в объекте singleObj имеется два поля:

  1. userID, которое ссылается на свойство userID и является целым числом
  2. id, которое ссылается на свойство id и является целым числом.

В данном случае экстрактору не нужно начинать с "0.", поскольку он автоматически ссылается на объект с индексом 0.

Вот как выглядит вывод в формате JSON, для справки:

Массивы объектов

Чтобы вернуть массив объектов, в разделе Output выберите List of Values и выберите Objects.

Скорее всего, в выводе JSON потребуется вернуть весь массив на корневом уровне.

Для этого введите "." для экстрактора:

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

Это позволит вернуть userId и id для каждого объекта в массиве. Проверить свою работу можно в разделе Outputs результатов тестирования:

Массивы данных одного типа

Представим, что вы хотите получить булево значение от каждого объекта в массиве возвращаемых значений.

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

В приведенном примере вывод называется "completed" и включает в себя значение из каждого свойства "completed" в массиве, указанного экстрактором.

Вот как будет выглядеть вывод:

Прошлые интеграции

Tulip может интегрироваться с различными программными системами. Вот несколько примеров систем, которые были интегрированы в Tulip в прошлом:

Дальнейшее чтение


Вы нашли то, что искали?

Вы также можете зайти на community.tulip.co, чтобы задать свой вопрос или узнать, сталкивались ли другие с подобным вопросом!


Была ли эта статья полезной?