rest api vs soap api
* REST (REpresentational State Transfer):
- It is an architecture style. It tells how to build web service. It is a convention not a protocol.
- Stateless ==> The server does not store any state (data) about the client session. Client is responsible.
- Uses only HTTP
- Uses mostly JSON but can also use XML, HTML, CSV, YAML, plain text, etc.
- Documentation is easy to understand
- More efficient and faster
- It requires less bandwidth to transfer message than SOAP.
- Less secure
- REST based web services use JAX-RS java API.
REST has better performance and scalability. REST reads can be cached, SOAP based reads cannot be cached.
REST services are meant to be called by the client-side application and not the end user directly.
You transfer the state around instead of having the server store it, this makes REST services scalable.
REST allows better support for browser clients due to its support for JSON.
JAX-RS stands for “Java API for RESTful Web Services”. JAX-RS API enables developers to rapidly build Web applications in Java according to the REST architectural pattern.
RESTful APIs are built based on some conventions not rules or protocol. So, conventions are “SHOULD DO” whereas protocols are “MUST DO”.
* SOAP (Simple Object Access Protocol):
- It is an XML based message protocol
- State or Stateless
- Language, platform and transport independent
- Can use SMTP (Simple Mailing Transfer Protocol), FTP (File Transfer Protocol) or HTTP
- Uses only XML
- Documentation is complex and hard to understand
- Slower than REST
- More secure
- SOAP based web services use JAX-WS Java API
- JAX-WS stands for “Java API for XML Web Services”
- SOAP is like XML based message protocol with strictly defined message structure, authorization mechanism and required documentation. It looks like HTML because both use XML format.
- Learning SOAP is much harder than REST because SOAP requires specific message structure.
- SOAP more secure, more stable but heavier(slower). It requires more bandwidth to transfer message than REST.
- SOAP message request is processed slower as compared to REST and it does not use web caching mechanism.
- While SOAP supports SSL (just like REST) it also supports WS-Security which adds some enterprise security features.