Generando un WSDL usando Python y SOAPpy
zsi (3)
En primer lugar, admitiré que soy un principiante de los servicios web, aunque estoy familiarizado con HTML y cosas básicas de la web. Creé un servicio web rápido y sucio usando Python que llama a un procedimiento almacenado en una base de datos MySQL, que simplemente devuelve un valor BIGINT. Quiero devolver este valor en el servicio web y quiero generar un WSDL que pueda ofrecer a nuestros desarrolladores web. Debo agregar que el procedimiento almacenado solo devuelve un valor.
Aquí hay un código de ejemplo:
#!/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()
Quiero generar un WSDL que pueda dar a la gente de la web, y me pregunto si es posible hacer que SOAPpy me genere uno. es posible?
Cuando intenté escribir el servicio web de Python el año pasado, terminé usando ZSI-2.0 (que es algo así como el heredero de SOAPpy) y un documento disponible en su web .
Básicamente escribí mi archivo WSDL a mano y luego usé cosas ZSI para generar stubs para mi cliente y el código del servidor. No describiría la experiencia como agradable, pero la aplicación funcionó.
Quiero generar un WSDL que pueda dar a la gente de la web, ...
Puedes probar soaplib . Tiene generación de WSDL bajo demanda.
Perdón por la pregunta hace unos días. Ahora puedo invocar el servidor con éxito. Se proporciona una demostración:
def test_soappy():
"""test for SOAPpy.SOAPServer
"""
#okay
# it''s 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)