API, Web Service & Micro service - Acknowledging their uniqueness
I have seen people using the words APIs, Web Services and Micros services almost synonymously. Collating some ready-reference to acknowledge their differences and uniqueness.
Happy reading & sharing!
Happy reading & sharing!
API (Application Programming Interface), Web Service and
Micro service all serves means of interaction or communication.
API
|
Web Service
|
Micro Services
|
API can be seen as an interface that facilitates the communication/interaction
between two or more applications or programs
|
Web service facilitates the communication of applications over
network.
|
Microservices is a specialization of an implementation approach for
service-oriented architectures (SOA) used to build flexible, independently
deployable software systems
|
API has several means of communication. It could be triggered by
certain application events, server events or even by system interrupts.
|
Web services uses HTTP (most commonly used protocol), SOAP, REST and
XML-RPC as means for communication
|
Micro services communicates through HTTP,REST,JSON
|
APIs are Specific to programming language and have predefined rules
on how unit of codes would interact with each other
|
Web Service interacts over communication protocol (e.g. HTTP),
independent of any dependencies of programming language.
|
Services communicate using either synchronous protocols such as
HTTP/REST or asynchronous protocols such as AMQP (Advanced Message Queuing
Protocol).
|
API specifically defines methods that is to be consumed by other
application/program to interact or within the same application.
|
Web Service performs similar (bit limited) functionalities as APIs
but used over a network or Web.
|
Web services are generally targeted to perform just one functionality
over network/web.
|
Desktop applications like Word, Excel, PowerPoint mostly uses APIs that doesn’t involve web service
|
When application is Web-based, it may involve using API wrapped
around HTTP (which is nothing but a Web service)
|
Micro services are loosely coupled collaborating services that might
be exposed through API gateways or directly over web using HTTP.
|
API does not need network to interact. The APIs can be exposed in a
number of ways which include: COM objects, DLL and .H files in C/C++
programming language, JAR files or RMI in Java, XML over HTTP, JSON over
HTTP, etc
|
Web service can interact only over network.
|
Micro services can interact only over network.
|
API is more close to application and facilitates the interaction
directly with the applications
|
Web service doesn’t interface directly with application. Interface is
only open for the methods and properties those are exposed through HTTP,
SOAP, REST or XML RPCs
|
Same as Web services
|
All APIs are not Web services
|
All Web services are APIs.
|
Deep inside, Micro service is still API – however a granule one.
|
API can perform lot more operations than a typical Web service or
Micro Service can perform
|
Web service might not be able to perform all the operations that API would
perform
|
|
Typically faster in execution, however not scalable
|
Slower or at par in execution with API, scalable to certain level
|
Slower or at par in execution with API, has highest scalability
|
As APIs typically responsible for number of functionalities, that is,
if API is down/corrupt or missing it can bring down entire application or
major functionalities
|
If Web services are down, it will impact only certain
functionalities. It will impact the application to minimum or moderate level
|
Depending upon the implementation, if microservices are down, it will
impact very small functionality of the application. Application as a whole
will remain intact.
|