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

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

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

14 ответов


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

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


обновление:

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


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

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

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

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

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

  • магазина: очень Pythonic, и легко создавать WSDL-потребляющих клиентов SOAP. Создание серверов 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, поэтому я задокументирую решение здесь.

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

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

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


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

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


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


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

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

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


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-сервером веб-фреймворка ("получателем"). В настоящее время soaplib находится в активной разработке и обычно обсуждается в списке рассылки Python SOAP:

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


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


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


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

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

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

обновление 06/2017: библиотека suds-jurko не обновляется и по-видимому, брошен,

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

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

сторона сервера Soap:

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

с уважением,


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

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


мы использовали SOAPpy из Веб-Службы Python, но кажется, что ZSI (тот же источник) заменяет его.


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

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