Какие клиентские библиотеки SOAP существуют для Python, и где находится документация для них? [закрытый]


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

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

14 309

14 ответов:

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

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


обновление:

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


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

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

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

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

"новые" библиотеки:

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

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

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

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

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

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

я последовал совету других ответов на этот вопрос и дал магазина попробовать. После использования его "в гневе" я должен согласиться: пена очень приятно! Очень рекомендую!

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

The urllib2 модуль доставки с Python 2.6.2 и ниже не будет выдавать CONNECT к прокси для сеансов HTTPS-over-HTTP-proxy. Это приводит к длительному таймауту, или, если Вам ПОВЕЗЕТ, ошибка, которая выглядит так:

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

это issue1424152 на Python bug tracker. К отчету об ошибке прилагаются исправления, которые исправят это в Python 2.x и Python 3.x.проблема уже исправлена.

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

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

пена-это путь, без сомнения.

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

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

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

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

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

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

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

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

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

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

на мой вывод: у нас есть это:

мыльная сторона клиента:

использовать толькоSuds-jurko(Обновлено в 2016 году) пена хорошо поддерживается и обновляется.

обновление 06/2017: библиотека suds-jurko не обновляется и очевидно заброшенной,

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

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

Soap server side:

У нас есть 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 (тот же источник) заменяет его.

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

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