Создание WSDL с использованием Python и SOAPpy
Прежде всего, я признаю, что я новичок в веб-сервисах, хотя я знаком с HTML и базовыми веб-материалами. Я создал быстрый и грязный веб-сервис с использованием Python, который вызывает хранимую процедуру в базе данных MySQL, которая просто возвращает значение BIGINT. Я хочу вернуть это значение в веб-службе, и я хочу создать WSDL, который я могу предоставить нашим веб-разработчикам. Я могу добавить, что хранимая процедура возвращает только одно значение.
Вот пример кода:
#!/usr/bin/python
import SOAPpy
import MySQLdb
def getNEXTVAL():
cursor = db.cursor()
cursor.execute( "CALL my_stored_procedure()" ) # Returns a number
result=cursor.fetchall()
for record in result:
return record[0]
db=MySQLdb.connect(host="localhost", user="myuser", passwd="********", db="testing")
server = SOAPpy.SOAPServer(("10.1.22.29", 8080))
server.registerFunction(getNEXTVAL)
server.serve_forever()
Я хочу создать WSDL, который я могу дать веб-пользователям, и мне интересно, возможно ли, чтобы SOAPpy генерировал один для меня. Возможно ли это?
Ответы
Ответ 1
Когда я пытался писать веб-сервис Python в прошлом году, я закончил использование ZSI-2.0 (что-то вроде наследника SOAPpy) и a бумага доступна на своем веб-сайте.
В основном я написал файл WSDL вручную, а затем использовал материал ZSI для создания заглушек для моего кода клиента и сервера. Я бы не описал этот опыт как приятный, но приложение действительно работало.
Ответ 2
Я хочу создать WSDL, который я могу предоставить веб-пользователям,....
Вы можете попробовать soaplib. Он имеет поколение WSDL по требованию.
Ответ 3
Извините за вопрос несколько дней назад. Теперь я могу успешно запустить сервер. Предоставляется демонстрационная версия:
def test_soappy():
"""test for SOAPpy.SOAPServer
"""
#okay
# it good for SOAPpy.SOAPServer.
# in a method,it can have morn than 2 ws server.
server = SOAPProxy("http://localhost:8081/")
print server.sum(1,2)
print server.div(10,2)