Подтвердить что ты не робот

Создайте papon soap-сервер на основе wsdl

У меня есть файл wsdl, описывающий клиент-сервер связи на Java-продукте. Я реализую новый сервер на основе Python, который будет реализовывать те же сервисы.

Знаете ли вы о каком-либо методе создания кода сервера Python на основе wsdl, который не требует, чтобы я записывал все связанные с этим типы типов?

Кроме того, что вы рекомендуете Api?

4b9b3361

Ответ 1

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

Для начала вам может понадобиться следующее:

http://wiki.python.org/moin/WebServices

http://pywebsvcs.sourceforge.net/

http://doughellmann.com/2009/09/01/evaluating-tools-for-developing-with-soap-in-python.html

Если вы действительно хотите продолжить этот маршрут, кажется, что ZSI - это инструмент для использования, хотя у меня есть свои сомнения что он будет работать с последним дистрибутивом 2.x Python.

Используя Python 2.6.6, я попытался использовать ZSI 2.0 для создания веб-службы, начиная с WSDL. При генерации кода с wsdl2py и wsdl2dispatch были предупреждены некоторые предупреждения "модуль устарел", пришлось отдельно установить PyXML и hack my sys.path просто для того, чтобы сначала разрешить его или я получил "модуль ext.reader не существует", а потом только разочарование "ZSI: EvaluateException Got None для nillable (False), minOccurs (1) элемент" ошибка на базовом "Привет мир!" WS с требуемым элементом.

Переключен на ZSI 2.1_a1, который больше не нужен PyXML и wsdl2py делает все (что wsdl2dispatch сделал для 2.0), но все же закончил тупик с помощью "ZSI: EvaluateException Got None for nillable (False) minOccurs (1)".

Опыт был не очень забавным, но мне было достаточно, чтобы составить мнение о том, что Python может предложить для веб-сервисов SOAP... это немного (и это было просто для базовых веб-сервисов, WS- * specs). YMMV!

РЕДАКТИРОВАТЬ: Недавно я столкнулся с этим вопросом SO, и хотя он был ориентирован на решение клиента, он также упоминает несколько библиотек для создание SOAP-сервисов.

Ответ 2

Этот вопрос не получил достаточного внимания.

В настоящее время принятый ответ хорош, но его ответ "нет". Нет ли разумно поддерживаемого и общего решения?

К сожалению, я не думаю, что отрицательный ответ объясняется отсутствием внимания к вопросу. В python не поддерживается WSDL. Если вы хотите избежать сложностей создания собственного конверта с мылом с нуля, единственное, что я могу вам порекомендовать, - это создать образец конверта с использованием любого из многих инструментов soap webservices (например, soapui), а затем использовать его как строку шаблона (I знаете, ужасно) в вашем коде python

UPDATE вы можете использовать spyne. Это набор инструментов python RPC, который среди других протоколов поддерживает SOAP. Он создаст WSDL для вас, но если ваша цель реализует сервис, описанный WSDL, который у вас уже есть, вам придется точно настроить вашу spyne-службу (написанную на python) до тех пор, пока сгенерированный WSDL не будет соответствовать оригинальному