SOAP or Simple Objects Access Protocol is a web communication protocol designed for Microsoft back in 1998. Today, it’s mostly used to expose web services and transmit data over HTTP/HTTPS. But it’s not limited to them. SOAP, unlike the REST pattern, supports the XML data format only and strongly follows preset standards such as messaging structure, a set of encoding rules, and a convention for providing procedure requests and response
It can be used to create, retrieve, delete and update records. We can use SOAP API in any language that supports web services.
In a SOAP API, the client application sends a request to a server application using a SOAP message. The SOAP message typically contains information about the action to be performed and any required input parameters. The server application processes the request and sends a SOAP response back to the client, which may contain the requested data or the result of the requested action.
SOAP API also allows you to maintain passwords, perform searches, retrieve metadata and many more features.
SOAP uses XML as the data format for messages being sent and received by an API client, and it provides four distinct dimensions to the API protocol:
Envelope is the core and essential element of every message, which begins and concludes messages with its tags, enveloping it, hence the name.
Header (optional) determines the specifics, extra requirements for the message, e.g. authentication.
Body Body includes the request or response.
Fault (optional) shows all data about any errors that could emerge throughout the API request and response.
✅ Platform- and operating system-independent: SOAP can be carried over a variety of protocols, enabling communication between applications with different programming languages on both Windows and Linux.
✅ Works on the HTTP protocol: Even though SOAP works with many different protocols, HTTP is the default protocol used by web applications.
✅ Can be transmitted through different network and security devices: SOAP can be easily passed through firewalls(A firewall is a network security device that prevents unauthorized access to a network), where other protocols might require a special accommodation.
WSDL (Web service description language) is an XML document which contains a standardized description on how to communicate using a web service.
WSDLs are also used to generate human-readable documentation for SOAP APIs.
You may consider a WSDL file as a contract between the provider and the consumer of the service. SoapUI supports 1.1 version of the WSDL specification and corresponding bindings for SOAP versions 1.1 and 1.2.
SoapUI comes with support for testing WSDL / SOAP based services. For enhanced functionality, try Soap UI - https://www.soapui.org/downloads/latest-release/
Getting started with some ad-hoc testing of a SOAP service is straight forward; select the “New Project” option from the File menu, which will prompt the following dialog:
Here, you have two input fields –>
1. Project Name
here, you can give any name which is suitable for your project.
2. Initial WSDL
Browse your downloaded WSDL file. If you forget to download the wsdl file, then use this wsdl path http://www.dneonline.com/calculator.asmx?wsdl into the Initial WSDL/WADL field (the Project Name will be extracted from this) and press OK.
SoapUI will work a bit and create the project with the imported WSDL available in the
navigator.
Go straight to the first “Request 1” request generated for the Add
operation and
double-click it,
which opens the following window:
Now all you have to do is enter two integer value and press the green arrow on the top left to submit the request to the target service, which will return a nice response for you:
SOAP was the first widely used protocol for connecting web services in a service-oriented architecture. Today, modern development of distributed applications is largely based on RESTful principles. SOAP is almost always confined to legacy platforms. One area where SOAP is still in use is in applications that handle online transactions, as it's a style of API that is more rigid and protocol-driven.