Frage

Zunächst einmal werde ich zugeben, dass ich ein Anfänger zu Webdiensten bin, obwohl ich mit HTML und grundlegendem Web-Material vertraut bin. Ich habe eine schnelle und unsaubere Web-Service-Python verwenden, um eine gespeicherte Prozedur in einer MySQL-Datenbank fordert, dass einfach ein BIGINT Wert zurückgibt. Ich mag diesen Wert in dem Web-Dienst zurückzukehren, und ich mag eine WSDL generieren, die ich unseren Web-Entwickler geben kann. Ich möchte hinzufügen, dass die gespeicherte Prozedur nur einen Wert zurückgibt.

Hier ist ein Beispielcode:

#!/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 möchte eine WSDL erzeugen, die 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?

War es hilfreich?

Lösung

Als ich versuchte, Python Web-Service im vergangenen Jahr zu schreiben, landete ich ZSI-2.0 mit bis (was so etwas wie Erben SOAPpy) und ein Papier auf seiner Web .

Im Grunde habe ich meine WSDL-Datei von Hand und verwenden dann ZSI Sachen Stubs für meine Client- und Server-Code zu generieren. Ich würde nicht die Erfahrung so angenehm beschreiben, aber die Anwendung funktioniert hat.

Andere Tipps

  

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

Sie können versuchen, soaplib . Es verfügt über On-Demand-WSDL-Generierung.

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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top