2008-11-07 22 views
13

En primer lugar, admitiré que soy un principiante en 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.Generar un WSDL usando Python y SOAPpy

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 puedo dar a la gente de la tela, y me pregunto si es posible tener SOAPpy simplemente generar una para mí. es posible?

+0

Este de usuario es el mejor que he visto hasta el momento de que alguien la generación de WSDL para su uso con su SoapServer: http://osdir.com/ml/python.pywebsvcs.general/ 2006-07/msg00015.html – Matthew

Respuesta

11

Cuando traté de escribir el servicio web de Python el año pasado, terminé usando ZSI-2.0 (que es algo así como heredero de SOAPpy) y paper available on its web.

Básicamente escribí mi archivo WSDL a mano y luego usé cosas ZSI para generar stubs para mi cliente y código de servidor. No describiría la experiencia como agradable, pero la aplicación funcionó.

+0

Seguí tu consejo y cambié a ZSI en lugar de SOAPpy, y al usar el papel y los otros ejemplos, * ALMOST * lo tengo funcionando ahora. ¡Gracias! – m0j0

+0

+1 para el tutorial solo. Muy buen trabajo! – Steen

+0

Estoy tratando de implementar mi servidor SOAP usando ZSI, pero encontré algunos problemas. ¿Puedes echar un vistazo a [esta pregunta] (https://stackoverflow.com/questions/44996528/wsdl2dispatch-raises-exception-while-generating-server-file) y [este] (https://stackoverflow.com/questions/45005474/how-to-force-zsi-to-accept-application-soapxml)? –

1

Quiero generar un WSDL que puedo dar a la gente web, ....

Usted puede tratar de soaplib. Tiene generación de WSDL bajo demanda.

1

Disculpa la pregunta hace unos días. Ahora puedo invocar el servidor con éxito. Se proporciona una demostración: intento

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) 
Cuestiones relacionadas