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

324
задан osiris 25 June 2014 в 22:29
поделиться

12 ответов

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

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

<час>

Обновление:

Дополнительно к тому, что упомянуто выше, я обращусь к страница Python WebServices , которая всегда актуальна со всеми активно сохраняемыми и рекомендуемыми модулями к [1 141] SOAP и все другие типы веб-сервиса.

<час>

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

библиотеки Older:

  • МЫЛЬНЫЙ : Было "лучшим", но больше не поддерживал. Не работает над Python 2.5 +

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

библиотеки "Newer":

  • ПЕНА : Очень Pythonic, и легкий создать использующие WSDL клиенты SOAP. Создание серверов SOAP является трудным. (Этот пакет не работает с Python3. Поскольку Python3 видят ПЕНУ-py3)

  • ПЕНА-py3 : версия Python3 ПЕНЫ

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

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

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

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

Из вышеупомянутого, я только использовал ПЕНУ лично, и мне понравилось оно много.

383
ответ дан 18 revs, 16 users 27% 23 November 2019 в 00:53
поделиться

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

0
ответ дан Kirk Strauser 23 November 2019 в 00:53
поделиться

Мог эта справка: http://users.skynet.be/pascalbotte/rcx-ws-doc/python.htm#SOAPPY

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

0
ответ дан Daren Thomas 23 November 2019 в 00:53
поделиться

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

1
ответ дан Community 23 November 2019 в 00:53
поделиться

У меня был хороший опыт с ПЕНОЙ https://, fedorahosted.org/suds

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

19
ответ дан Rajesh 23 November 2019 в 00:53
поделиться

SUDS - это правильный выбор, без сомнения.

10
ответ дан 23 November 2019 в 00:53
поделиться

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

У меня действительно возникли проблемы с вызовом веб-служб на основе HTTPS из-за прокси. На момент написания этой статьи это затрагивает всех клиентов веб-служб Python, которые используют 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. Проблема уже устранена .

47
ответ дан 23 November 2019 в 00:53
поделиться

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

6
ответ дан 23 November 2019 в 00:53
поделиться

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

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

0
ответ дан 23 November 2019 в 00:53
поделиться

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

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

4
ответ дан 23 November 2019 в 00:53
поделиться

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

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

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

ОБНОВЛЕНИЕ 06/2017:библиотека suds-jurko не обновлена ​​и очевидно заброшена,

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

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

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

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

С уважением,

1
ответ дан 23 November 2019 в 00:53
поделиться

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

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

2
ответ дан 23 November 2019 в 00:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: