Skip to main content

WSDL described SOAP protocol support for "dm.zope.rpc", based on "suds"

Project description

This is a plugin for dm.zope.rpc, a protocol independent middleware to expose web services over a variety of rpc protocols.

This package is using suds, an advanced soap (1.1) client library under the LGPL license. suds is slightly abused by using it to implement a server component. This abuse requires the use of undocumented implementation details which may change between suds versions. The package has been implemented with suds==0.3.9. It may not work with other versions.

Limitations

The current implementation does not handle exceptions. They are not transformed into SOAP Fault messages (as required by SOAP 1.1) but reported by the underlying transport protocol (“HTTP”) (using HTTP error codes with HTML messages). The reason for this limitation: SOAP 1.1 has no complete (self contained) specification for its Fault element but requires externally defined namespaces for completion and I have not yet understood the interaction between WSDL defined exceptions and SOAP Fault elements. Once, I have understood WSDL specified exceptions, this limitation might be removed.

SOAP and WSDL are complex standards with a large number of features. This package does not support all features. For example, it ignores all SOAP headers, even headers with a must_understand declaration (in violation of the SOAP specification). In addition, only a small set of features has been tested: for example, only the document binding; other bindungs might (or might not) work. Over time, more features might be supported, might have been tested.

The current implementation makes use of suds WSDL caching. This can be confusing during WSDL development, as modifications are not seen until the cache times out. Delete the suds cache files in such a case (they usually are in a suds subfolder of the folder typically used for temporary files).

Configuration

As usual with dm.zope.rpc protocol handlers, configuration is via a marshaller instance. The WSDL specific configuration of the WsdlMarshaller is via the fields wsdl_map and default_namespace. wsdl_map maps the namespace found in a method invocation to an url which provides access to the WSDL for this namespace. default_namespace is the namespace to be used for GET requests when method and parameters are specified directly in the url and not via a request entity.

You can find a (simple) example configuration in tests.soap.

Misc

The package has been tested under Zope 2.12 and Zope 2.10. For Zope versions before 2.12, a properly configured dm.zopepatches.xmlrpc is required, to prevent Zope’s builtin xmlrpc support to interfere. The above mentioned example configuration shows how dm.zopepatches.xmlrpc can be configured.

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

dm.zope.rpc_protocol.wsdl_suds-0.1a2.tar.gz (8.8 kB view details)

Uploaded Source

File details

Details for the file dm.zope.rpc_protocol.wsdl_suds-0.1a2.tar.gz.

File metadata

File hashes

Hashes for dm.zope.rpc_protocol.wsdl_suds-0.1a2.tar.gz
Algorithm Hash digest
SHA256 174721f9fa11ee6bfcf156fe1b70bf3f7c24464a62efd0f4e8989accd99ca4a4
MD5 29d87998ff07563b9d02262bfb3443b4
BLAKE2b-256 9543dff9122818f41136ae45e10e0456c9c0f96832584734e8e492a823576b0a

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