Request Controller

Learn via video courses
Topics Covered

Overview

As part of his doctoral work, Roy Fielding generalized the web’s architectural principles and presented them as a framework of constraints or an architectural style. Fielding referred to this architectural style as Representational State Transfer or REST.

Rest is the most commonly used integration style for application-to-application communication.

Transform Your Career

Choose from our industry-leading programs designed for career success

NSDC Certified

Modern Software and AI Engineering Program

Master full-stack development with AI integration

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

Modern Data Science and ML with specialisation in AI

Advanced data science techniques with AI specialization

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

Advanced AIML with Specialisation in Agentic AI

Deep dive into AIML with focus on Agentic systems

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

DevOps, Cloud & AI Platform Engineering

Build and manage AI-powered cloud infrastructure

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

AI Engineering Advanced Certification by IIT-Roorkee

Premier AI engineering certification from IIT-Roorkee

3 MonthsDuration
AI-LedCurriculum
Career SupportSupport
Program highlights
Go to Program

What is REST?

Rest Stands for Representational State Transfer.

REST is nothing but an architectural style around the web. It encourages us to use the web with some constraints and guiding principles below.

  • Everything is a resource.
  • Each resource is identified by a unique identifier (URI).
  • Use the Standard HTTP Method.
  • Resources can have multiple representations.
  • Be stateless.

It provides standards between computer systems on the web, making it easier for systems to communicate with each other.

architechture-of-rest-api

Scaler Placement Report and Statistics

₹23L
AVG CTC
SCALER PLACEMENT PROOF

Scaler learners achieved 2.5x salary growth with average post-Scaler CTC reaching ₹23L.

11,000+placements
650+companies
Verified data

How to Do It?

Spring boot as a framework simplifies the development of restful web services without writing boilerplate code. Let's understand how to expose restful web services using spring boot.

Add Required Dependency

The only dependency we need is the following :

With this one dependency, our application is web-enabled and ready to expose the endpoint. This is without the need for manual configuration of the dispatcher servlet, content negotiator, serializer, deserializer, etc.


Turn Learning into Career Growth

1200+Hiring Partners
89%Placement Rate
11,000+Placements
147%Avg Salary Increment
2.5XCareer Growth
₹23 LPAAvg Post-Scaler Salary
1200+Hiring Partners
89%Placement Rate
11,000+Placements
147%Avg Salary Increment
2.5XCareer Growth
₹23 LPAAvg Post-Scaler Salary

Add Controller

To handle the web request, we need to have a controller added to the application. Controllers are special beans in the spring framework ecosystem capable of handling HTTP requests. Spring boot provides a special annotation @RestController to mark the class as a controller.


@RestController Annotation

This "annotation" is another example of meta-annotation or convenience annotation like @SpringBootApplication. The @RestController annotation comprises two annotations.

  1. @Controller :
    It’s a Spring stereotype annotation similar to @Bean and @Repository and declares the annotated class as an MVC Controller.
  2. @ResponseBody :
    A Spring annotation binds a method return value to the web response body. It uses HTTP Message converters to convert the return value to the HTTP response body based on the content type in the request HTTP header.

Scaler Placement Report and Statistics

₹23L
AVG CTC
SCALER PLACEMENT PROOF

Scaler learners achieved 2.5x salary growth with average post-Scaler CTC reaching ₹23L.

11,000+placements
650+companies
Verified data

Expose REST Endpoint

There are four basic HTTP verbs we use in requests to interact with resources in a REST system, and spring boot provides the corresponding annotation for each of those.

Http VerbSpring AnnotationDescription
GET@GetMappingRetrieve a resource
POST@PostMappingCreate a resource
PUT@PutMappingModify a resource
DELETE@DeleteMappingDelete a resource

These annotations contain parameters that deal with the HTTP request and response. A few key parameters are

  • Path :
    An URL path or resource location. For example path for all the employees will be /employees

  • Headers :
    The headers of the mapped request, narrowing the primary mapping. Header attributes restrict the scope of the controller method. Request only mapped if each such title is found to have the given value.

    For example :

    will match requests with a Content-Type of "text/html".

  • Consumes :
    Narrows the primary mapping by media types that the handler can consume. For example, if your API supports only JSON format as input. It can be restricted using @GetMapping(value = "/employee", consumes="application/json"). It's an array type, meaning you can supply more than one value.

  • Produces :
    Narrows the primary mapping by media types that the mapped handler can produce.

Let's apply this knowledge and expose a couple of endpoints.

The @RequestMapping(/employee) on the class applies the mapping the all the handlers. This is convenient as we don't have to repeat the same mapping in all the handler methods. We have two APIs.

  • /employee :
    Return all the employees.
  • /employee/{id} :
    Return employee with specific id supplied in the path variable.

Response of the above APIs will be :

Conclusions

  • REST is a trendy integration style for service-to-service communication.
  • REST is an architectural style.
  • Spring boot provides annotation @RestController to mark the class as controller and capable of handling web requests.
  • Spring boot provides mapping annotation for each type of HTTP verb.
Hiring Partners:
GoogleGoogleAmazonAmazonMicrosoftMicrosoftFlipkartFlipkartAdobeAdobe1200+ more