SOAP-клиент. Обработка для тестирования web-сервисов.



При работе с web-сервисами в качестве клиента, зачастую приходится искать инструменты для их отладки. Таких инструментов немало, но некоторые из них недостаточно функциональны, некоторые — платные. Мне, например, понравился SOAPUI, но, к сожалению, время его использования в ознакомительном режиме невелико. Поэтому я решил написать обработку для отладки web-сервисов средствами 1C:Предприятия (платформа 8.2, обычные формы).

Обработка достаточно проста в использовании:

Чтобы получить доступ к функционалу web-сериса достаточно ввести в соответствующие поля путь к файлу определения,  данные аутентификации и нажать кнопку "Обновить определение".

Далее следует выбрать требуемую операцию web-сервиса, заполнить входные параметры (параметры пока что могут быть только примитивных типов: строка, число, булево, дата) и нажать кнопку "Выполнить". Если операция возвращает значение, его представление в текстовом или XML формате можно будет увидеть на вкладке "Результат выполнения".

8 Comments

  1. kuntashov

    Внесу уточнение: soapUI (http://www.soapui.org/) бесплатен и распространяется с исходными кодами, платная только PRO-версия, но ее функционал среднестатистическим разработчиком не восстребован.

    Reply
  2. premierex

    Я использовал версию PRO, попробую бесплатную. Пусть тогда эта обработка послужит пособием тем, кто не работал с динамическими вызовами операций web-сервисов 🙂

    Reply
  3. Feelthis

    Подскажите пожалуйста, почему нельзя передавать в параметрах при вызове метода web сервиса «сложные типы»? А точнее при выполнении метода web сервиса у меня возвращает ответ в котором структура которую не может принять 1С.(Ошибка структуры данных) Не подскажите может ли 1С принять ответ в виде сложной структуры — например таблицы значений?

    Reply
  4. premierex

    3. Почему нельзя? Можно! Надо просто задать описание типа в XDTO пакете. Главное, чтобы принимающая сторона тоже имела описание типа передаваемого значения.

    Если принимающая сторона — «1С Предприятие» и имеет такую же конфигурацию, как и отправляющая сторона, можно даже объекты, описанные в конфигурации передавать.

    Например, в типе XDTO можно указать:

    Пространство имен: http://v8.1c.ru/8.1/data/enterprise/current-config

    Имя типа: DocumentObject.ПриходнаяНакладная.

    А в общем и целом, все объекты строятся на составляющих простых типов и должны быть описаны в Document Type Definition (определение типа документа).

    Поэтому, чтобы передавать параметры «сложных» типов, надо описать все типы, из которых они состоят.

    В общем, как говорится, мануал в руки, и вперед! )))

    Reply
  5. Feelthis

    Спасибо, в итоге у нас получилось принять таблицу значений. В нашем случае обмен идет с web сервисом SAP R3. И дело было в том, что на их стороне по началу не распознавался наш пакет из 1С (В виде структуры из 3 х простых полей и 1ой таб значений) — в ответ выдавал пустой ответ и 1С ругалась на не соответствие структуры.

    В итоге на их стороне разработчик, как он выразился «мапил» входящие и исходящие xml пакеты — то есть как я понял корректировал перед обработкой. В итоге связь есть. Может кому понадобится информация

    Reply
  6. WKBAPKA

    Спасибо, работает. Единственное, не совсем еще разобрался почему один метод, который возвращает простую строку в виде «Hello,world» отрабатывается без ошибок, однако поле «результат выполнения» пустое, а вот второй метод, который возвращает уже структуру типа таблицы значений результат выполнения заполняет?

    Reply
  7. WKBAPKA

    вопрос снят, посмотрел в отладчике, все прекрасно возвращает, только возвращаемое значение сравнивается с типом XDTO, а примитивные типы игнорируются… счаз допилю под себя обработочку…спасибо, использовать soapUI можно, но тяжеловато

    Reply
  8. _root

    Обработка, которая работает и со сложными типами данных в параметрах: http://infostart.ru/public/259849/

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *