What’s the difference between a REST system and a system that is RESTful?
From a few things I’ve read most so called REST services are actually RESTful services. So what is the difference between the two.
16 s
REST based Services/Architecture vs. RESTFUL Services/Architecture
To differentiate or compare these 2, you should know what REST is.
REST (REpresentational State Transfer) is basically an architectural style of development having some principles:
-
It should be stateless
-
It should access all the resources from the server using only URI
-
It does not have inbuilt encryption
-
It does not have session
-
It uses one and only one protocol – HTTP
-
For performing CRUD operations, it should use HTTP verbs such as
get
,post
,put
anddelete
-
It should return the result only in the form of JSON or XML, atom, OData etc. (lightweight data )
REST based services
follow some of the above principles and not all
RESTFUL services
means it follows all the above principles.
It is similar to the concept of:
Object oriented languages
support all the OOP concepts, examples: C++, C#
Object-based languages
support some of the OOP features, examples: JavaScript, VB
Example:
ASP Dot NET MVC 4 is REST-Based
while Microsoft WEB API is RESTFul
.
MVC supports only some of the above REST principles whereas WEB API supports all the above REST Principles.
MVC only supports the following from the REST API
-
We can access the resource using URI
-
It supports the HTTP verb to access the resource from server
-
It can return the results in the form of JSON, XML, that is the HTTPResponse.
However, at the same time in MVC
-
We can use the session
-
We can make it stateful
-
We can return video or image from the controller action method which basically violates the REST principles
That is why MVC is REST-Based
whereas WEB API supports all the above principles and is RESTFul
.