SOAP
The SOAP (Simple Object Access Protocol) API provides a comprehensive web services framework for manipulating SOAP messages, making calls to external end-points, and creating web services. SOAP is a protocol for exchanging structured information in the implementation of web services. It relies on XML as its message format and typically operates over HTTP.
Overview
SOAP is a widely adopted protocol for communication between distributed applications. It allows programs running on different operating systems and platforms to communicate by exchanging XML-based messages. The SOAP API enables developers to interact with SOAP-based web services seamlessly.
Key Features
- SOAP Message Handling: The API offers functionalities for creating, parsing, and manipulating SOAP messages, including headers, bodies, and attachments.
- Service Invocation: Developers can make calls to external SOAP-based services, invoking remote methods and exchanging data using SOAP messages.
- Web Service Creation: The SOAP API facilitates the creation of SOAP-based web services, allowing developers to expose their functionalities as SOAP endpoints.
- Protocol Support: The API supports various protocols for message transport, including HTTP, HTTPS, SMTP, and more, providing flexibility in communication.
Example Usage
javascript
import { soap } from "sdk/net";
import { response } from "sdk/http";
response.setContentType("text/plain; charset=UTF-8");
let requestMessage = soap.createMessage();
let part = requestMessage.getPart();
let envelope = part.getEnvelope();
envelope.addNamespaceDeclaration("ws", "http://ws.cdyne.com/");
let body = envelope.getBody();
let resolveIPElement = body.addChildElement("ResolveIP", "ws");
let ipAddressElement = resolveIPElement.addChildElement("ipAddress", "ws");
ipAddressElement.addTextNode("213.239.203.158");
let licenseKeyElement = resolveIPElement.addChildElement("licenseKey", "ws");
licenseKeyElement.addTextNode("");
let mimeHeaders = requestMessage.getMimeHeaders();
mimeHeaders.addHeader("SOAPAction", "http://ws.cdyne.com/ResolveIP");
requestMessage.save();
response.println("Request: " + requestMessage.getText());
let responseMessage = soap.call(requestMessage, "http://ws.cdyne.com/ip2geo/ip2geo.asmx");
response.println("Response: " + responseMessage.getText());
Functions
Function | Description | Returns |
---|---|---|
createMessage() | Creates an empty SOAP Message | Message |
parseMessage(mimeHeaders, inputStream) | Creates a message by a given MIME Headers and by parsing of the provided input stream | Message |
parseRequest() | Creates a message by parsing the standard Request input and empty headers | Message |
createMimeHeaders() | Creates an empty MimeHeaders | MimeHeaders |
call(request, url) | Calls an end-point of a SOAP Web Service with a request Message and returns the response Message | Message |
Objects
Message
Function | Description | Returns |
---|---|---|
getMimeHeaders() | Returns the MimeHeaders object of this Message | MimeHeaders |
getPart() | Returns the Part object of this Message | Part |
save() | Save the changes made on the Message and its components | - |
getText() | Returns a text representation of the Message | string |
MimeHeaders
Function | Description | Returns |
---|---|---|
addHeader(name, value) | Creates and add a new MIME header | - |
Part
Function | Description | Returns |
---|---|---|
getEnvelope() | Returns the Envelope object of this Part | Envelope |
Envelope
Function | Description | Returns |
---|---|---|
getBody() | Returns the Body object of this Envelope | Body |
getHeader() | Returns the Header object of this Envelope | Header |
addNamespaceDeclaration(prefix, uri) | Creates and add a namespace attribute | - |
createName(localName, prefix, uri) | Creates a Name object to be used further | Name |
Body
Function | Description | Returns |
---|---|---|
getChildElements() | Returns an array of the child Elements | [Element] |
addChildElement(localName, prefix) | Creates and add a child Element | Element |
Header
Function | Description | Returns |
---|---|---|
addHeaderElement(name) | Creates and add a Header Element with a Name | Element |
Name
Function | Description | Returns |
---|---|---|
getLocalName() | Returns the Local Name of the Name object | string |
getPrefix() | Returns the Prefix of the Name object | string |
getQualifiedName() | Returns the Qualified Name of the Name object | string |
getURI() | Returns the URI of the Name object | string |
Element
Function | Description | Returns |
---|---|---|
getChildElements() | Returns an array of the child Elements | [Element] |
getElementName() | Returns the name of the Element | Name |
getValue() | Returns the value of the Element if any | string |
addChildElement(localName, prefix) | Creates and add a child Element | Element |
addTextNode(text) | Creates and add a text node | Element |
addAttribute(name, value) | Creates and add an attribute | Element |
isSOAPElement() | Returns true if the Element is SOAP Element and false otherwise (e.g. CDATA, PDATA, etc.) | string |