Какие библиотеки клиентов 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 (что-то вроде кода заголовка не в том месте), но кроме этого он работал и продолжает делать это очень надежно.

  • Как вызвать мыльный API с Python
  • Что является хорошей основой для мыльного сервиса?
  • SOAP MTOM звонит с Python
  • получение определенного значения в <экземпляре типа>
  • Ошибка Suds: BadStatusLine в httplib
  • Как отправить файл через Soap в python?
  • Существуют ли какие-либо рабочие примеры ZOLERA SOAP Infrastructure (ZSI)?
  • Какие существуют библиотеки SOAP для Python 3.x?
  • Как импортировать XSD-схему с Python Suds (версия 0.3.6) SOAP-библиотека: TypeNotFound exception?
  • Как написать веб-службу для Google App Engine?
  • Мыльный звонок в Python
  • Python - лучший язык программирования в мире.