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
  • Software-as-a-Service

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.

Example URIs?

  • 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:

  • net
  • C#
  • PHP
  • Android
  • Java
  • JQuery
  • AngularJS
  • JSon
  • Xamarin

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.

The principles of RESTful interface design, where XML over HTTP is a powerful interface that allows internal applications, such as Asynchronous JavaScript + XML (Ajax)-based custom user interfaces, to easily connect, address, and consume resources. In fact, the great fit between Ajax and REST has increased the amount of attention REST is getting these days. Exposing a system’s resources through a RESTful API is a flexible way to provide different kinds of applications with data formatted in a standard way. It helps to meet integration requirements that are critical to building systems where data can be easily combined, and to extend or build on a set of base, RESTful services into something much bigger.

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 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

 

Conclusion

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.