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

StackOverflow https://stackoverflow.com/questions/206154

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Редактировать:На всякий случай я использую Python 2.6.

Это было полезно?

Решение

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

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


Обновлять:

В дополнение к сказанному выше я сошлюсь на Веб-сервисы Python страница, которая всегда актуальна со всеми активно поддерживаемыми и рекомендуемыми модулями для МЫЛО и все другие типы веб-сервисов.


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

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

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

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

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

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

  • SUDS-py3:Версия SUDS для Python3

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

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

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

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

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

Другие советы

Я последовал совету других ответов на этот вопрос и дал СУДС попытка.После использования его "в гневе" должен согласиться:СУДС - это очень здорово!Настоятельно рекомендуется!

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

А urllib2 доставка модуля с Python 2.6.2 и ниже не будет выдавать ошибку CONNECT к прокси-серверу для сеансов HTTPS-over-HTTP-прокси.Это приводит к длительному тайм-ауту или, если вам повезет, к ошибке следующего вида:

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

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

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

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

SUDS – это правильный путь, в этом нет никаких сомнений.

Просто предупреждение для людей, просматривающих SUDS: пока этот билет не будет решен, SUDS не поддерживает тег «выбор» в 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-клиента («отправителя») в пользу suds.На данный момент мыльная библиотека ориентирована на то, чтобы быть независимым от веб-платформы SOAP-сервером («приемник»).В настоящее время Soaplib находится в активной разработке и обычно обсуждается в списке рассылки Python SOAP:

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

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

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

В мой вывод у нас такой:

Клиентская часть мыла:

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

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

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

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

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

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

С наилучшими пожеланиями,

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top