2008-11-07 12 views
13

Zuallererst werde ich zugeben, ich bin ein Neuling für Web-Services, obwohl ich vertraut bin mit HTML und grundlegende Web-Sachen. Ich habe einen schnellen Webdienst mit Python erstellt, der eine gespeicherte Prozedur in einer MySQL-Datenbank aufruft, die einfach einen BIGINT-Wert zurückgibt. Ich möchte diesen Wert im Webdienst zurückgeben, und ich möchte eine WSDL generieren, die ich unseren Webentwicklern geben kann. Ich könnte hinzufügen, dass die gespeicherte Prozedur nur einen Wert zurückgibt.Erzeugt eine WSDL mit Python und SOAPpy

Hier einige Beispiel-Code:

#!/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() 

ich eine WSDL generieren möchten, dass ich auf die Web-Leute geben kann, und ich frage mich, ob es möglich ist, nur zu haben SOAPpy für mich generieren. Ist das möglich?

+0

Versuche dieses Benutzers ist das Beste, was ich bisher von jemandem gesehen habe Erzeugung WSDL für die Verwendung mit ihrem Soapserver: http://osdir.com/ml/python.pywebsvcs.general/ 2006-07/msg00015.html – Matthew

Antwort

11

Als ich letztes Jahr versuchte, Python-Web-Service zu schreiben, endete ich mit ZSI-2.0 (was so etwas wie Erbe von SOAPpy) und einem paper available on its web.

Grundsätzlich habe ich meine WSDL-Datei von Hand geschrieben und dann ZSI-Stuff verwendet, um Stubs für meinen Client- und Servercode zu generieren. Ich würde die Erfahrung nicht als angenehm beschreiben, aber die Anwendung hat funktioniert.

+0

Ich folgte Ihrem Rat und wechselte zu ZSI anstelle von SOAPpy, und durch die Verwendung des Papiers und der anderen Beispiele habe ich * FAST * es jetzt funktioniert. Vielen Dank! – m0j0

+0

+1 für das Tutorial allein. Sehr gute Arbeit! – Steen

+0

Ich versuche, meinen SOAP-Server mit ZSI zu implementieren, aber ich habe einige Probleme festgestellt. Können Sie sich [diese Frage] (https://stackoverflow.com/questions/44996528/wsdl2dispatch-raises-exception-while-generating-server-file) und [this one] (https://stackoverflow.com) ansehen/questions/45005474/how-to-force-zsi-zu-akzeptieren-application-soapxml)? –

1

Ich möchte eine WSDL erzeugen, die ich auf die Web-Leute geben kann, ....

Sie soaplib versuchen. Es verfügt über eine bedarfsgesteuerte WSDL-Generierung.

1

Sorry für die Frage vor ein paar Tagen. Jetzt kann ich den Server erfolgreich aufrufen. Eine Demo ist vorgesehen:

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) 
Verwandte Themen