В этой статье я расскажу, как настроить веб-сервис в OTRS 5, куда и что вводить и как проверить работоспособность сервиса с помощью SoapUI. Мы будем настраивать SOAP, а не REST. Настраиваем OTRS как провайдера, т.е.
система будет предоставлять данные по запросу.
Если вам интересно, пожалуйста, обратитесь к кат.
Итак, мы установили замечательный OTRS и начали в нем работать.
И тогда руководству потребовалась отчетность.
И не какой-нибудь, а очень сложный.
Вместо того, чтобы копаться во внутренних отчетах, мы решили просто брать данные из системы через веб-сервис и строить отчеты в отдельной программе.
Итак, переходим в администрирование → веб-сервисы.
Создайте новый веб-сервис:
1) Введите имя интерфейса
2) Выберите сетевой транспорт HTTP::SOAP
3) Нажмите «Сохранить».
После сохранения вы можете выбрать Операции .
Для работы с билетами нам понадобилось всего три: СеансСоздать — позволяет создать сессию и использовать ее идентификатор в дальнейшем, а не переносить каждый раз логин и пароль.
Поиск билетов — позволяет найти билеты по заданным критериям (в нашем случае открытые и закрытые за определенный период).
Возвращает список идентификаторов билетов (в частности, идентификаторов, а не номеров).
БилетПолучить — позволяет получить конкретный билет (или несколько) по идентификатору билета.
При создании Операция вы указываете имя, которым будете называть его в дальнейшем.
И последний штрих — переходим к настройке сетевого транспорта и устанавливаем пространство имен и длину сообщения.
Длина 1000 нас вполне устроила.
Пространство имен представляет собой следующую ссылку: example.com/otrs/nph-genericinterface.pl/Webservice/InterfaceName
Где example.com - ваш домен, ИмяИнтерфейса — имя вашего интерфейса.
Если настроено шифрование, то https, а не http. Всё, все настройки на стороне OTRS выполнены.
Как теперь получить доступ к сервису извне? Для этого установите SoapUI, возьмите схему wsdl и отправьте ее в SoapUI. Многие в Интернете жаловались, что OTRS сам по себе не предоставляет схему WSDL, и это, по сути, проблема.
Спасибо добрым людям, которые выложили это в открытый доступ.
github.com/OTRS/otrs/tree/master/development/webservices Поэтому мы немного перерабатываем предложенный нам файл.
Измените заголовки файла GenericTicketConnectorSOAP.wsdl. имя определения от имени вашего веб-сервиса.
Далее во всем мыло: операция В мылоДействие изменять http://www.otrs.org/TicketConnector в ваше пространство имен.<Эxml version="1.0" encoding="UTF-8"?>< wsdl:definitions name="GenericTicketConnectorSOAP" targetNamespace=" http://www.otrs.org/TicketConnector/ " xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/ " xmlns:tns="http://www.otrs.org/TicketConnector/ " xmlns:xsd="http://www.w3.org/2001/XMLSchema " xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/ "> < wsdl:documentation >
< soap:operation soapAction=" http://www.otrs.org/TicketConnector/TicketCreate " />
И в самом конце документа в wsdl:порт укажите свое пространство имен в расположение .
< wsdl:port name="GenericTicketConnector_Port" binding=" tns:GenericTicketConnector_Binding ">
< soap:address location=" http://localhost/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorSOAP " />
</ wsdl:port >
Запускаем Soap UI, создаем новый SOAPProject, указываем файл со схемой.
Результат должен выглядеть примерно так.
SoapUI автоматически сгенерирует базовые запросы.
И последний аккорд — проверка работоспособности сервиса.
Сервис вернул нам SessionID, который уже можно использовать в других запросах, не передавая каждый раз логин и пароль.
Некоторые нюансы:
1) Как уже говорилось, OTRS не предоставляет схему WSDL, что очень неудобно.
2) По запросу TicketSearch выдаёт не более 500 ID. Таким образом, если вы должны получить больше 500, вы все равно получите только 500. Я не нашел способа обойти эту проблему.
3) Чтобы TicketGet вернул SolutionDiffInMin (на сколько время разрешения запроса отличается от целевого SLA), нужно что-то передать в запросе Extended. Если у кого-то есть интересные комментарии, комментарии приветствуются :) P.S. По поводу того, что при поиске возвращалось не более 500 сообщений, помогло увеличение параметра GenericInterface::Operation::TicketSearch###SearchLimit. Спасибо Еисаев для вашей помощи.
P.P.S здесь вторая статья , как настроить OTRS в качестве соискателя.
Теги: #Системное администрирование #руководство #otrs #webservice
-
Обучение Microsoft Очень Полезно.
19 Oct, 24 -
Брэд
19 Oct, 24 -
Столица Электромобилестроения России.
19 Oct, 24 -
Шаблоны И Концепции В C++20
19 Oct, 24