Before I discuss the importance of restful services, I will briefly review Web services and SOAP based web services.
What are Web Services?
Web services are web application components that can be published, found, and used on the Web. They help to solve the interoperability problem by giving different applications a way to link their data. They use XML to code and to decode data. By using Web services you can exchange data between different applications and different platforms.
What are SOAP based Services?
SOAP stands for Simple Object Access Protocol. It is a protocol for exchanging structured information in the implementation of web services in computer networks. It uses XML Information Set for its message format, and can operate over HTTP, SMTP, TCP, UDP, or JMS transfer protocols. It is platform independent and a format for sending and receiving messages. It is also XML based.
A SOAP based message contains the following elements:
Envelope: Identifies the XML document as a SOAP message
Header: Contains header information
Body: Contains call and response information
Fault: Contains errors and status information
Use of SOAP based Services
When making decisions as to when and why to use SOAP based Services, consider the following:
- Services oriented architecture
- Need to connect applications from incompatible environments, such as Windows and UNIX, or .NET and J2EE
- Unknown Client Environment
- Multichannel Client Formats
- Other Web Services Applications
- Point-to-Point Integration
- Managing Legacy Assets
- Reducing Duplicative Applications
- Collaboration and Information Sharing
- Trading Partner Network
Importance of Restful Services
Restful services has gained significant importance based on its adoption to meet the current and future Mobile, Web and smart devices’ software and applications needs.
What is REST?
REST stands for Representational State Transfer. It relies on a stateless, client-server, cacheable communications protocol. REST is an architecture style for designing networked applications. It is simple and light weight. It uses HTTP requests to post, read and delete data. It is second generation Web Services. REST can return XML, plain text, JSON and HTML.
- GET http://www.example.com/api/
- GET http://www.example.com/api/customer/1234/
- GET http://www.example.com/peej/customer/address/1234
- DELETE http://www.example.com/api/customer/1234/
Technologies employing Restful Services
The following are some modern software development technologies, where restful services are widely used for integrating applications over the different platforms and different software applications:
Let’s discuss the Restful Services and its design principles, which distinguish it from other Web services.
General Design of Rest Interface?
In general design principle, it also helps to follow REST rules for using HTTP methods explicitly by using nouns instead of verbs in URL’s. The verbs—POST, GET, PUT, and DELETE in RESTful Web services are already defined by the protocol. To keep the generalized interface to allow clients to be explicit about the operations they invoke, the Web service should not define more verbs or remote procedures, such as /addcustomer or /updatecustomer. This general design principle applies to the body of an HTTP request. It is intended to be used to transfer resource state, while not carrying the name of a remote method or remote procedure which can be invoked.
Use of Restful Services
Many web applications have been built using SOAP-based web services over the last decade. Many architects have been making assumptions that SOAP-based services are the better options for mobile applications. I believe that RESTful services using data in JSON format is a better choice for mobile applications, whether the client device technology is Android, iOS, Blackberry or Mobile Web.
Difference between SOAP and Rest
|SOAP is a protocol through which two computers communicate by sharing XML document||REST is a service architecture and designed for network-based software architectures|
|SOAP permits only XML||REST supports many different data formats|
|SOAP based reads cannot be cached||REST reads can be cached|
|SOAP is like a custom desktop application, closely connected to the server||A REST client is more like a browser; it knows how to standardized methods and an application has to fit inside it|
|SOAP is slower than REST||REST is faster than SOAP|
|It runs on HTTP but envelopes the message||It uses the HTTP headers to hold meta information|
In this blog I discussed Web Services and differences between SOAP and REST from a usage and architectural point of view. I also analyzed typical usage, and offered an approach that is geared specifically for the unique challenges involved in building mobile applications, especially for multiple platforms in modern software development. RESTful API is a flexible way to expose a system’s resources through different kinds of applications with data formatted in a standard way.