- Распечатать
Это руководство поможет вам понять все возможности 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.
После этого появится вкладка Environment. Если вы хотите настроить несколько сред, обратитесь к этому отдельному руководству.
Затем, после выбора коннектора, выберите Add Connection Details, чтобы добавить дополнительные сведения о сервере, к которому требуется выполнить запрос.
Существует 5 вариантов.
Обратитесь к этому руководству по хостам коннекторов.
Хост: Укажите только домен, к которому вы хотите сделать запрос. Не включайте http:// или https://. Например, myaccount.restlet.api.netsuite.com.
Порт: Этот параметр должен быть задан сервисом, к которому выполняется запрос. HTTP-запросы обычно используют порт 443.
TLS: Выберите "Да", если вы используете HTTPS, и "Нет", если просто "HTTP".
Нажмите кнопку Test (Проверить ), чтобы убедиться в успешном подключении к серверу, а затем нажмите кнопку Save (Сохранить).
Чтобы продублировать или удалить коннектор, вернитесь на страницу Коннекторы, а затем щелкните на трех точках справа от конкретного коннектора.
Создание функции коннектора
Для создания новой функции нажмите кнопку Add New Function на вкладке Functions.
Затем появится ряд опций для редактирования функции.
Сначала дайте имя функции в верхней левой части страницы.
Затем нажмите кнопку Add Function Inputs (Добавить входы функции ), чтобы начать добавлять входы. Пример:
Если вы хотите протестировать свою функцию HTTP-коннектора, добавьте "Test Value" для каждого входа.
Затем добавьте конечную точку в конец URL-адреса и выберите тип HTTP-запроса.
Выберите Query Parameters (Параметры запроса ), чтобы начать добавлять пары ключ/значение. В поле " Значение " используйте заданные вами входные данные.
Добавьте символ $ до и после имени входного параметра, например, если имя входного параметра - "имя_города", введите$city_name$
.
Работа с ответами
После того как вы определитесь с входными и выходными данными, выберите Test в правом верхнем углу, чтобы создать образец ответа.
В разделе Test Results вы увидите ответ в формате JSON или XML. Теперь можно сопоставить части этого ответа с выходными данными и затем использовать их в приложениях.
Экстракторы JSON используют синтаксис json-query. Для проверки синтаксиса используйте этот онлайн-инструмент.
Экстракторы XML используют синтаксис XPATH.
Это можно сделать двумя способами:
- Щелкнуть на свойствах в теле ответа, чтобы сопоставить их с выходами.
- Вручную указать путь с помощью 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 имеется два поля:
- userID, которое ссылается на свойство userID и является целым числом
- id, которое ссылается на свойство id и является целым числом.
В данном случае экстрактору не нужно начинать с "0.", поскольку он автоматически ссылается на объект с индексом 0.
Вот как выглядит вывод в формате JSON, для справки:
Массивы объектов
Чтобы вернуть массив объектов, в разделе Output выберите List of Values и выберите Objects.
Скорее всего, в выводе JSON потребуется вернуть весь массив на корневом уровне.
Для этого введите "." для экстрактора:
Затем, как и в случае с извлечением объектов, начните добавлять отдельные свойства, которые вы хотите отправить в приложение.
Это позволит вернуть userId и id для каждого объекта в массиве. Проверить свою работу можно в разделе Outputs результатов тестирования:
Массивы данных одного типа
Представим, что вы хотите получить булево значение от каждого объекта в массиве возвращаемых значений.
Для этого создайте вывод для массива булевых значений. Затем укажите свойство, которое используется для хранения этого булева значения в каждом объекте.
В приведенном примере вывод называется "completed" и включает в себя значение из каждого свойства "completed" в массиве, указанного экстрактором.
Вот как будет выглядеть вывод:
Прошлые интеграции
Tulip может интегрироваться с различными программными системами. Вот несколько примеров систем, которые были интегрированы в Tulip в прошлом:
Дальнейшее чтение
- Как создать и настроить функцию HTTP-коннектора
- Как форматировать выходные данные HTTP-коннектора
- Использование HTTP-коннекторов в приложениях
Вы нашли то, что искали?
Вы также можете зайти на community.tulip.co, чтобы задать свой вопрос или узнать, сталкивались ли другие с подобным вопросом!