What is Restful Architecture ?

REST is an architectural style(Wikipedia) that is used in Rails by default.

Restful Web Services is a stateless client-server architecture where web services are resources and can be identified by their URIs. REST Client applications can use HTTP GET/POST methods to invoke Restful web services.

Rest Principals:

Client-Server Architecture should be present

Stateless-> The server would not store any state, that is session information to identify the user over multiple subsequent requests. Each request should include some way of identifying the user.

Cacheable -> the request are cached on server to improve the performance of application

Uniform Interface -> All the client server interactions should use similar terminology and resources this helps standardize APIs. According to this principle, the following HTTP verbs are used: GET, PUT, POST, and DELETE. Resources always refer to URIs (uniform resource identifier). HTTP responses always come with a status and a body.

Layered system -> Developing a layered system improves the scalability of application

Types of HTTP request methods in rails

The application receives an HTTP request which carries along with it a method which could be:

GET - Retrieve a resource

POST - Create a resource

PUT - Completely update a resource

PATCH - Partially update a resource

DELETE - Delete a resource

These methods determine which controller action method is called.