python soap wsdl soappy zsi

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)