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

Я никогда раньше не использовал SOAP, и я как 9X_pythonista бы новичок в Python. Я делаю это, чтобы 9X_pythonista познакомиться с обеими технологиями. Я установил 9X_soap-client SOAPlib и пытался прочитать их документацию по 9X_python-shell Client, но не очень хорошо ее понимаю. Могу ли 9X_py я изучить что-нибудь еще, что больше подходит 9X_py для использования в качестве клиентской 9X_python библиотеки SOAP для Python?

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

343
7

  • Любой, кто посещает этот вопрос, проголосует за его повторное открытие, что ...
11
Общее количество ответов: 11

Ответ #1

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

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

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


Обновление:

В дополнение 9X_soap к тому, что упомянуто выше, я буду ссылаться 9X_py на страницу Python WebServices, которая всегда актуальна и 9X_pythonic содержит все активно поддерживаемые и рекомендуемые 9X_python-shell модули для SOAP и всех других типов веб-сервисов.


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

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

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

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

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

  • SUDS: очень 9X_soap питонический и простой в создании клиентов 9X_soap SOAP, использующих WSDL. Создание серверов 9X_python-interpreter SOAP немного сложнее. (Этот пакет не работает 9X_soap с Python3. Для Python3 см. SUDS-py3)

  • SUDS-py3: версия 9X_soap-client SUDS для Python3

  • spyne: Создавать серверы легко, а 9X_soap-client создавать клиентов - немного сложнее. Документация 9X_pythonista несколько отсутствует.

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

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

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

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

406
7

  • Сегодня я начал использовать SUDS только для получения данных. ...

Ответ #2

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

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

У 9X_python-shell меня возникли проблемы с вызовом веб-служб 9X_pythonista на основе HTTPS из-за прокси. На момент 9X_python написания это затронуло всех клиентов веб-служб 9X_python-shell Python, которые используют urllib2, поэтому я задокументирую 9X_soap-client решение здесь.

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

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

Это 9X_pythonista было issue1424152 в системе отслеживания ошибок Python. К 9X_python отчету об ошибке прилагаются патчи, которые 9X_python-interpreter исправят это в Python 2.x и Python 3.x. Проблема уже устранена.

48
3

  • @paulm: попробуйте https://bitbucke ...

Ответ #3

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

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

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

19
2

  • SUDS - это круто! действительно проста в использовании, хорошая документация, отличный матери ...

Ответ #4

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

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

9X_soap-client

11
2

  • Я обнаружил, что SUDS поддерживает ...

Ответ #5

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

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

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

см .: suds and choice tag

9
0

Ответ #6

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

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

6
0

Ответ #7

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

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

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

4
0

Ответ #8

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

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

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

2
0

Ответ #9

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

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

Клиентская 9X_soap-client часть мыла:

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

ОБНОВЛЕНИЕ 06/2017: библиотека suds-jurko не обновляется 9X_python-interpreter и apparently abandoned,

Я тестировал библиотеку zeep, но у меня были 9X_soap ограничения по токенам, к настоящему времени 9X_py просто поддерживаю UsernameToken, я сообщаю 9X_python о bug для создания токена отметки времени, а 9X_soap-client автор обновляет код, чтобы исправить это.

Zeep 9X_pythonic запускается хорошо и имеет хороший documentation, поэтому 9X_soap-client я недавно перенес свой код с suds на zeep 9X_py и работает нормально.

Сторона мыльного сервера:

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

С 9X_python-interpreter уважением,

2
0

Ответ #10

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

Как я и предложил here, я рекомендую вам использовать 9X_soap-client собственные. На самом деле это не так уж 9X_python-shell сложно, и я подозреваю, что по этой причине 9X_pythonic нет лучших библиотек Python SOAP.

1
0

Ответ #11

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

Пена очень хороша. Я попробовал SOAPpy, но 9X_pythonista не смог заставить его работать так, как 9X_python-interpreter мне было нужно, тогда как пена работала 9X_soap почти сразу.

1
0