REST based Services/Architecture VC RESTFUL Services/Architecture
To differentiate or compare these 2, you should know what is REST.
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 that is HTTP
- For performing CRUD operations, it should use HTTP verbs such as get, post, put and delete
- 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 allRESTFUL services
means it follows all the above principles.
It is similar to the concept of:
Object-based languages
supports all the OOPs concepts, examples: C++, C#Object oriented languages
supports some of the OOPs 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
.