/soap

Make it easy to use SOAP from Erlang

Primary LanguageErlangApache License 2.0Apache-2.0

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:

  1. Implementing a SOAP client - Consume a web service.
  2. Implementing a SOAP server - Expose a web service.
  3. Creating a WSDL - Expose a function as a web service and generate a WSDL.

For more details there are additional documents:

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.