There are many definitions of Web Services as they are not only defined by different organizations but also has gone through many changing stages. In this article, we will share our understandings about Web Services from the perspective of the differences between Web services vs APIs.
1. Web services testing overview
What is Web Services?
As described by the World Wide Web Consortium (W3C), Web services provide a standard means of interoperating between different software applications, running on a variety of platforms and/or frameworks. Web services are characterized by their great interoperability and extensibility, as well as their machine-processable descriptions thanks to the use of XML. They can be combined in a loosely coupled way in order to achieve complex operations. Programs providing simple services can interact with each other in order to deliver sophisticated added-value services.
Web services communicate over a network through HTTP between the two systems. Many web services are identical to SOA (Services Oriented Architecture) and mainly rely on standards such as XML-RPC and SOAP (Simple Object Access Protocol).
The application A provides the function allowing other applications to get the information of a user via the URL: “abc.com/user/id“. The input is the id and the output is the user information.
Now we have an application on mobile, one on the website and one on the desktop and all of them want to get the information of the user A, then they just need to send a request to the application A with the ID of the user they want to get the information.
When the application A receives the request, it will send back an XML response regardless of where the request is sent from and what language is used. We can see that the exchange of data between applications doesn’t rely on the language or the environment.
Advantages of Web services
There are many advantages of using web services:
- Interoperability: One of the advantages of web service is interoperability. Web services allow applications to communicate, exchange data and share services among themselves.The common standards-based communications methods have been developed and these make it possible for web service to be the platform-independent.
- Usability: Web services are designed to be used like a web page request and receive data. Web services are the same. The capability of web services varies from simple information lookup to complex algorithmic computations. That’s why it can be easily used.
- Reusability: Web Services are designed to be combined to deliver more added-value services. Web services serve as building blocks to makes it easy to reuse Web Service components in other services. Also, legacy applications can be wrapped into web services to be used by others.
- Deployability: Web Services are deployed over Internet standards such as standard Apache, Axis2 to provide HTTP, WSDL driven services. This makes it simple to deploy.
- Cost: The cost is reduced due to new systems are assembled from packaged web services. The saved cost can be benfinit to both the solution provider and the customer. Moreover, efficiency is achieved at the same time.
Types of Web service testing
There are two major types of web services:
- SOAP Web Services: SOAP (Simple Object Access Protocol) is an XML-based protocol for accessing web services. Its interface is described in a machine-processable format called WSDL (Web Service Definition Language) document. A web service is described by using a standard, formal XML notion that provides all necessary details like message format, transport protocols, and location to interact with the web service.
- REST Web Services: REST (Representational State Transfer) is a style of software architecture. The data format is described by using JSON schema notation, and it requires the use of the HTTP transport protocol.
2. Differences between SOAP and REST
There are some important differences between SOAP and REST
|SOAP is a protocol.||REST is an architectural style.|
|SOAP can’t use REST because it is a protocol.||REST can use SOAP web services because it is a concept and can use any protocol like HTTP, SOAP.|
|SOAP only permits XML.||REST permits many different data formats including plain text, HTML, XML, and JSON…|
|SOAP requires more bandwidth and more resources.||REST requires less bandwidth and less resources.|
|SOAP supports both SMTP and HTTP protocols.||REST requires use of HTTP only.|
|SOAP is more reliable than REST.||REST is less secure than SOAP.|
|In most cases, SOAP is faster than REST.||REST is slower than SOAP.|
|SOAP defines its own security.||RESTful web services inherits security measures from the underlying transport.|
3. The differences between Web Services vs API
As discussed above, we have known about Web Services. You’re probably wondering “What are the differences between APIs and Web Services?”. In order to answer this question, let’s take a look at what an API is and the analogy between APIs and Web Services.
API stands for Application Programming Interface which is a protocol used as an interface by software components to communicate with each other. An API serves as an interface between two different applications so that they can communicate with each other.
APIs and Web Services both are means of communication between service providers and service consumers. They are usually mistaken for each other but there are many differences between them:
|All web services are APIs.||All APIs are not web services.|
|It can only be hosted on IIS.||It can be hosted within an application or IIS.|
|It is not open source but can be used by any client that understands XML.||It is open source and it can be used by any client that understands JSON or XML.|
|It requires a SOAP protocol to receive and send data over the network, so it is not a light-weight architecture.||It is light-weight architectured and good for devices which have limited bandwidth, like mobile devices.|
|A Web service uses only three styles of use: SOAP, REST and XML-RPC for communication.||API may use any style of communication.|
|It only supports the HTTP protocol.||It supports the HTTP protocol: URL, Request/Response Headers, caching, versioning, content formats.|