Какие библиотеки клиентов SOAP существуют для Python и где для них имеется документация?

Я никогда раньше не использовал SOAP, и я немного нового для Python. Я делаю это, чтобы познакомиться с обеими технологиями. Я установил SOAPlib, и я попытался прочитать их клиентскую документацию, но я не очень хорошо ее понимаю. Есть ли что-то еще, что я могу изучить, что больше подходит для того, чтобы быть клиентской библиотекой SOAP для Python?

Изменить: на всякий случай это помогает, я использую Python 2.6.

14 Solutions collect form web for “Какие библиотеки клиентов SOAP существуют для Python и где для них имеется документация?”

Обновление (2016):

Если вам нужен только SOAP-клиент, есть хорошо сохранившаяся библиотека под названием zeep . Он поддерживает как Python 2, так и 3 🙂


Обновить:

В дополнение к тому, что упоминалось выше, я буду ссылаться на страницу Python WebServices, которая всегда актуальна со всеми активно поддерживаемыми и рекомендованными модулями для SOAP и всех других типов webservice.


К сожалению, на данный момент я не думаю, что есть «лучшая» SOAP-библиотека Python. У каждого из основных доступных есть свои плюсы и минусы.

Старые библиотеки:

  • SOAPy : Был «лучшим», но больше не поддерживался. Не работает на Python 2.5+

  • ZSI : Очень больно использовать, и развитие происходит медленно. Имеет модуль под названием «SOAPpy», который отличается от SOAPy (см. Выше).

«Новые» библиотеки:

  • SUDS : очень Pythonic, и легко создавать WSDL-потребляющие SOAP-клиенты. Создание SOAP-серверов немного сложнее. (Этот пакет не работает с python3.)

  • spyne : Создание серверов легко, создавая клиентов немного сложнее. Документации несколько не хватает.

  • ladon : Создание серверов очень похоже на soaplib (с использованием декоратора). Ladon предоставляет больше интерфейсов, чем SOAP, в то же время без дополнительного кода пользователя.

  • pysimplesoap : очень легкий, но полезный как для клиента, так и для сервера – включает интеграцию сервера web2py, которая поставляется с web2py.

  • SOAPpy : В отличие от заброшенного SOAPpy, размещенного по ссылке ZSI выше, эта версия была фактически сохранена до 2011 года, теперь она тоже заброшена.
  • soaplib : простая в использовании библиотека python для написания и вызова мыльных веб-сервисов. Веб-службы, написанные с помощью soaplib, просты, легки, хорошо работают с другими реализациями SOAP и могут быть развернуты как приложения WSGI.
  • osa : Быстрая / тонкая простая в использовании клиентская библиотека SOAP python.

Из вышеизложенного я использовал только SUDS лично, и мне это очень понравилось.

Я последовал советам других ответов на этот вопрос и попросил SUDS . После использования «в гневе» я должен согласиться: SUDS очень приятно! Настоятельно рекомендуется!

Я столкнулся с проблемой вызова HTTPS-сервисов из-за прокси-сервера. На момент написания этой статьи это затрагивает все клиенты веб-сервиса Python, которые используют urllib2 , поэтому я буду документировать решение здесь.

urllib2 модуля urllib2 с помощью python 2.6.2 и ниже не приведет к подключению CONNECT к прокси для сеансов HTTPS-over-HTTP-proxy. Это приводит к длительному таймауту или, если вам повезет, ошибке, которая выглядит так:

 abort: error: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol 

Это был вопрос1424152 в Python. В отчет об ошибке включены исправления, которые исправят это в Python 2.x и Python 3.x. Проблема уже исправлена .

У меня был хороший опыт работы с SUDS https://fedorahosted.org/suds

Использовали их TestSuite в качестве документации.

SUDS – это способ пойти, не вопрос об этом.

Просто предупреждение FYI для людей, смотрящих на SUDS, пока этот билет не будет разрешен, SUDS не поддерживает тег «choice» в WSDL:

https://fedorahosted.org/suds/ticket/342

см .: пена и тег выбора

SUDS прост в использовании, но не гарантируется повторный вход. Если вы сохраняете объект WSDL Client () в многопоточном приложении для повышения производительности, существует определенный риск. Решение этого риска, метод clone (), выдает неисправимую ошибку Python 5508, которая, кажется, печатает, но не вызывает исключения. Может быть запутанным, но он работает. Он по-прежнему является лучшим клиентом SOAP Python.

Мы выпустили новую библиотеку PySimpleSOAP , которая обеспечивает поддержку простого и функционального клиента / сервера. Это цели: простота использования и гибкость (не требуются классы, автогенерированный код или xml), интроспекция и генерация WSDL, стандартное соответствие WS-I, совместимость (включая Java AXIS, .NET и Jboss WS). Он входит в состав Web2Py, чтобы включить полнотекстовые решения (дополняя другие поддерживаемые протоколы, такие как XML_RPC, JSON, AMF-RPC и т. Д.).

Если кто-то изучает SOAP или хочет исследовать его, я думаю, что это хороший выбор для начала.

Я полагаю, что soaplib не одобряет своего клиента SOAP («отправитель») в пользу пены. На данный момент soaplib сосредоточен на том, что он является агностическим сервером SOAP-сервера («приемник»). В настоящее время soaplib находится в активной разработке и обычно обсуждается в списке рассылки SOAP Python:

http://mail.python.org/mailman/listinfo/soap

Как я предложил здесь, я рекомендую вам бросить свой собственный. На самом деле это не так сложно, и я подозреваю, что это причина того, что там нет лучших библиотек SOAP Python.

пена довольно хороша. Я попробовал SOAPpy, но не получил его, чтобы работать так, как мне было нужно, в то время как пена работала очень быстро.

В моем заключении мы имеем следующее:

Сторона клиента мыла:

использовать только Suds-jurko (обновленный 2016), пена ухожена и обновляется.

ОБНОВЛЕНИЕ 06/2017: библиотека suds-jurko не обновляется и, по- видимому, оставлена ,

Я протестировал библиотеку zeep, но получил ограничения по токенам, теперь просто поддерживаю UsernameToken, я сообщаю об ошибке, чтобы создать маркер метки времени, и автор обновил код, чтобы исправить его.

Zeep начинается хорошо и имеет хорошую документацию , поэтому я недавно перенес мой код с пеной на zeep и отлично работает.

Сторона сотового сервера:

У нас есть TGWS, soaplib (pysimplesoap не проверено). Использование IMHO и помощь soaplib должны быть выбором.

С наилучшими пожеланиями,

Может ли это помочь: http://users.skynet.be/pascalbotte/rcx-ws-doc/python.htm#SOAPPY

Я нашел его, ища wsdl и python , с рациональным существованием, что вам понадобится wsdl-описание SOAP-сервера для создания любых полезных оберток клиента ….

Мы использовали SOAPpy из Python Web Services , но похоже, что ZSI (тот же источник) заменяет его.

Im использует SOAPpy с Python 2.5.3 в настройках производства.

Мне пришлось вручную отредактировать пару файлов в SOAPpy (что-то вроде кода заголовка не в том месте), но кроме этого он работал и продолжает делать это очень надежно.

  • ServiceNow - Как использовать SOAP для загрузки отчетов
  • python использует неверный префикс пространства имен в запросе SOAP
  • python, suds и клиентский сертификат: SAXParseException: неверно сформированный (недопустимый токен)
  • Suds + JIRA = SAXException
  • Какие библиотеки SOAP python все еще поддерживаются?
  • Кто-нибудь смог получить библиотеку мыла с пеной для работы с NetSuite WSDL?
  • Как отправить файл через Soap в python?
  • SOAP MTOM звонит с Python
  •  
    Interesting Posts for Van-Lav

    Как установить пакет SimpleJson для Python

    Функция для вычисления градиента 3D с неравномерно расположенными точками выборки

    Как определить путь к php.exe на windows – поиск путей по умолчанию?

    SQLAlchemy StaleDataError при удалении элементов, вставленных через ORM sqlalchemy.orm.exc.StaleDataError

    Как сгенерировать список уникальных случайных чисел в Python

    Запись CSV без разделителей в Python

    DeprecationWarning: использование `oa_ndim == 0`, когда` op_axes` равно NULL, устарело

    Простой Facebook Connect в Google App Engine (Python)

    Как удалить элементы списка в цикле for в Python?

    Объединить файлы PDF

    Как использовать параметры QFileDialog и извлекать saveFileName?

    Статические файлы Google App Engine GET 404

    Tkinter Canvas перемещает элемент на верхний уровень

    Python FTP «chunk» iterator (без загрузки всего файла в память)

    Используя MongoDB в качестве нашей основной базы данных, следует ли использовать отдельную базу данных графа для реализации отношений между объектами?

    Python - лучший язык программирования в мире.