Przejdź do treści

Python SOAP server (flask) + generowanie wsdl

Krótkie wprowadzenie jak uruchomić prosty serwer SOAP przy pomocy pakietu "Flask-Enterprise". Do przetestowania połączenia do serwera użyjemy klienta z pakietu "suds".

Instalacja

$ pip install Flask-Enterprise

Tworzenie pliku servera

soap.py
    from time import ctime
    from flask import Flask
    from flaskext.enterprise import Enterprise

    app = Flask(__name__)

    enterprise = Enterprise(app)


    class DemoService(enterprise.SOAPService):
        __soap_server_address__ = '/soap'
        __soap_target_namespace__ = 'ns'

        @enterprise.soap(_returns=enterprise._sp.String)
        def get_time(self):
            return ctime()

    if __name__ == '__main__':
        app.run(host='127.0.0.1', port=5555)

Uruchamiamy serwer

$ python soap.py

Tworzenie pliku klienta

client.py
1
2
3
4
from suds.client import Client

c = Client('http://127.0.0.1:5555/soap?wsdl')
print c.service.get_time()

Uruchamiamy klienta

$ python client.py
Tue Aug 13 19:49:53 2013