soap
Erlang SOAP support - Make it easy to use SOAP from Erlang.
- Generate a SOAP client from a WSDL
- Generate a SOAP server from a WSDL
- Generate a WSDL from Erlang specifications
- Use your preferred HTTP client or server application
Contents
Introduction
The soap
application provides functions to implement a SOAP client or server in Erlang.
It can easily be integrated with existing http client and server
applications. Integration for ibrowse, httpc, inets, cowboy and mochiweb is
provided.
The figure below provides a high level overview of the application and the main integration points.
![SOAP application](doc/soap architecture.png "Overview of the SOAP application")
The starting point can be a WSDL for which you need to implement an Erlang SOAP client or server, or an existing Erlang function that you want to expose as a service (and for which you need a WSDL).
The figure below shows how the application can generate the relevant modules, either starting from a WSDL ("contract first") or starting from a set of Erlang type specifications ("contract last").
![Process and artifacts](doc/soap process.png "Process and artifacts")
Documentation overview
A use cases document gives an overview of the application by describing the 3 main use cases:
- Implementing a SOAP client - Consume a web service.
- Implementing a SOAP server - Expose a web service.
- Creating a WSDL - Expose a function as a web service and generate a WSDL.
For more details there are additional documents:
- Features, standards support and limitations
- Client tutorial - describes the details of the generated client module.
- Server tutorial - an example of how to implement a server from a WSDL (use case 2 above).
- Server callbacks - a reference guide for the functions that may be provided for the implementation of a SOAP service.
- Generating a WSDL from Erlang type specifications - a more elaborate example of the "contract last" approach.
- SOAP attachments - How to create and use services with attachments.
- Integrating a HTTP client - How to use another HTTP client.
- Integrating a HTTP server - How to use another HTTP server.
- Reference guides:
Building
rebar is used to build the software.
rebar get-deps
rebar compile
Alternatively, just type make
to compile the code, and make ct
to run the tests (the Makefile invokes rebar).
Dependencies
soap
requires erlsom, version v1.4.0 or later.
Contributors
This soap
application was developed by Willem de Jong(@willemdj) with design input from Chandru Mullaparthi(@cmullaparthi). The development of this library was sponsored by bet365.