Saturday, June 11, 2016

What is REST?

REST stands for Representational State Transfer.
When WCF is developed using REST architectural style they are called RESTful Sevices.
REST introduced by Roy Fielding in 2000 in ‘‘Architectural Styles and the Design of Network-based Software Architectures’.
REST is an architectural pattern that is based on HTTP it uses HTTP requests, HTTP responses, verbs and status codes to communicate. Because they use HTTP so they can be use by any ‘online’ device.
REST does not belong to any specific platform, but is based on Web with HTTP.
In REST Architecture everything is a resource. RESTful web services are highly scalable, light weight  and maintainable and are very commonly used to create APIs for web based applications.

REST is often used with social networking, mobile applications, Web sites, mashup tools, and automated business processes.

The REST style emphasizes that interactions between clients and services is enhanced by having a limited number of operations (verbs).

Flexibility is provided by assigning resources (nouns) their own unique Universal Resource Identifiers (URIs). Because each verb has a specific meaning (GET, POST, PUT and DELETE), REST avoids ambiguity.

REST Starter Kit?

The WCF REST Starter Kit is a set of .NET Framework classes and Visual Studio features and templates that enable users to create and access REST-style Windows Communication Foundation (WCF) services.
RESTful service are easy to use by most of tools.
RESTful services easy to scale in comparison of SOAP.
REST uses a smaller message format than SOAP. So it is faster than SOAP.
Better choice for Cloud computing.
RESTful webservices are fast in comparison of SOAP, No strict specification like SOAP. It take less bandwidth and resources.
Language and Platform independent.
It can use SOAP web services as implementation.
Permit different data format like Plain Text, HTML, XML and JSON.

How to Designing RESTful Services

The very first step in designing RESTful based services is to identify the objects (resources) which will be exposed to the outside world and second step is, to map these resources to a URI. In RESTful based services one should not focus on designing the methods for an application but focus on designing the resources that implement uniform interfaces using standard HTTP verbs (GET, POST, PUT, and DELETE) and their URI (by which URI they can be located). There are several data format which can be used by REST but XML and JSON are mostly used.

No comments: