Skip to content

thojou/browser-soap

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Browser Soap

This module lets you connect to web services using SOAP, in pure javascript, using node or browser.

This module is forked from node module "tinysoap@1.0.2". Specific changes are:

  • You don't need jQuery anymore

Features (copied from soap@0.2.6 Readme.md):

  • Very simple API
  • Handles both RPC and Document schema types
  • Supports multiRef SOAP messages (thanks to @kaven276)
  • Support for both synchronous and asynchronous method handlers
  • WS-Security (currently only UsernameToken and PasswordText encoding is supported)

Install

Install with npm:

  npm install https://github.com/tjoussen/browser-soap

Browser

Then embed the file "./browser-soap-min.js"

<script src="browser-soap-min.js"></script>

Then you write code such as:

// in global scope:
this['browser-soap'].createClient("/ACMEWebService?WSDL", function(err, client) {
  if (!err)
    console.log(client);  // all methods are stored in client
});

Or in es6

import soap from 'browser-soap'

soap.createClient("/ACMEWebService?WSDL", function(err, client) {
  if (!err)
    console.log(client);  // all methods are stored in client
});

JSONP is not currently supported, but should be very simple to add...

Module

soap.createClient(url, callback) - create a new SOAP client from a WSDL url

  var soap = require('soap');
  var url = 'http://example.com/wsdl?wsdl';
  var args = {name: 'value'};
  soap.createClient(url, function(err, client) {
      client.MyFunction(args, function(err, result) {
          console.log(result);
      });
  });

Client

An instance of Client is passed to the soap.createClient callback. It is used to execute methods on the soap service.

Client.describe() - description of services, ports and methods as a JavaScript object

  client.describe() // returns
    {
      MyService: {
        MyPort: {
          MyFunction: {
            input: {
              name: 'string'
            }
          }
        }
      }
    }

Client.setSecurity(security) - use the specified security protocol (see WSSecurity below)

  client.setSecurity(new WSSecurity('username', 'password'))

Client.method(args, callback) - call method on the SOAP service.

  client.MyFunction({name: 'value'}, function(err, result) {
      // result is a javascript object
  })

Client.service.port.method(args, callback) - call a method using a specific service and port

  client.MyService.MyPort.MyFunction({name: 'value'}, function(err, result) {
      // result is a javascript object
  })

WSSecurity

WSSecurity implements WS-Security. UsernameToken and PasswordText/PasswordDigest is supported. An instance of WSSecurity is passed to Client.setSecurity.

  new WSSecurity(username, password, passwordType)
    //'PasswordDigest' or 'PasswordText' default is PasswordText

WSDL Options

  • flattenArray (default: true): If false, array child values will be processed as child node elements with its parent node name
  • childNodeMap (default: {}): Translate the parent node name into another alias which is used as name for child node values. Only used if flattenArray: false

About

soap client in pure javascript, runs in browser

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%