Skip to main content

A Flask extension, provides support for Spyne.

Project description

Flask-Spyne is a Flask extension which provides Spyne (formerly known as soaplib) support. Includes SOAP, WSDL, JSON, XML, YAML and other transports and protocols. Inspired by unofficial Flask-Enterprise extension (a wrapper on top of outdated soaplib).

Installation

pip install flask-spyne

Please check list of additional requirements you might need to install.

Server example

from flask import Flask
from flask_spyne import Spyne
from spyne.protocol.soap import Soap11
from spyne.model.primitive import Unicode, Integer
from spyne.model.complex import Iterable

app = Flask(__name__)
spyne = Spyne(app)

class SomeSoapService(spyne.Service):
    __service_url_path__ = '/soap/someservice'
    __in_protocol__ = Soap11(validator='lxml')
    __out_protocol__ = Soap11()

    @spyne.srpc(Unicode, Integer, _returns=Iterable(Unicode))
    def echo(str, cnt):
        for i in range(cnt):
            yield str

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

Client example

from suds.client import Client as SudsClient

url = 'http://127.0.0.1:5000/soap/someservice?wsdl'
client = SudsClient(url=url, cache=None)
r = client.service.echo(str='hello world', cnt=3)
print r

WS-Security

Starting from v0.2 flask-spyne supports basics of WS-Security for SOAP services.

Specify __wsse_conf__ dict with following fields:

username (str, required)
password (str, required)
password-digest (bool, optional)
nonce-freshness-time (int, optional)
reject-empty-nonce-creation (bool, optional)
reject-stale-tokens (bool, optional)
reject-expiry-limit (int, optional)

See server_auth.py/client_auth.py in examples for more details.

Written by Robert Ayrapetyan (robert.ayrapetyan@gmail.com).

No copyright. This work is dedicated to the public domain. For full details, see https://creativecommons.org/publicdomain/zero/1.0/

The third-party libraries have their own licenses, as detailed in their source files.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flask-spyne-py3-1.0.0.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

flask_spyne_py3-1.0.0-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file flask-spyne-py3-1.0.0.tar.gz.

File metadata

  • Download URL: flask-spyne-py3-1.0.0.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.2

File hashes

Hashes for flask-spyne-py3-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a03a42243c2e0c286ac6370e207911bbf747671385ad02559d717d08608314e5
MD5 76b329927f01010d0e308feeff00951a
BLAKE2b-256 37f88f62ab451cb0d3480ba99e1819c919a7ceeaa12737c8477043cb1b85f86e

See more details on using hashes here.

File details

Details for the file flask_spyne_py3-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for flask_spyne_py3-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a7e701943bf007c6766f5d073f946a4e722be24ab94cb2577aa4d0254be93d81
MD5 a97e17d25940f22ab9d9817aa62047f2
BLAKE2b-256 eb07197b15d71039afabb8caed731527976f7c47b24aeee0ad6d1bd72ed1daa6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page