Open In App

Spring – REST Controller

Last Updated : 26 Nov, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

Spring Boot is built on the top of the spring and contains all the features of spring. And is becoming a favorite of developers these days because of its rapid production-ready environment which enables the developers to directly focus on the logic instead of struggling with the configuration and setup. Spring Boot is a microservice-based framework and making a production-ready application in it takes very little time. In this article, we will discuss what is REST controller is in the spring boot. There are mainly two controllers are used in the spring, controller and the second one is RestController with the help of @controller and @restcontroller annotations. The main difference between the @restcontroller and the @controller is that the @restcontroller combination of the @controller and @ResponseBody annotation.

RestController: RestController is used for making restful web services with the help of the @RestController annotation. This annotation is used at the class level and allows the class to handle the requests made by the client. Let’s understand @RestController annotation using an example. The RestController allows to handle all REST APIs such as GET, POST, Delete, PUT requests. 

Spring Initializr is a web-based tool using which we can easily generate the structure of the Spring Boot project. It also provides various different features for the projects expressed in a metadata model. This model allows us to configure the list of dependencies that are supported by JVM. Here, we will create the structure of an application using a spring initializer and then use an IDE to create a sample GET route. Therefore, to do this, the following steps are followed sequentially as follows.

Step by Step Implementation

Step 1: Go to Spring Initializr

Fill in the details as per the requirements. For this application:

Project: Maven
Language: Java
Spring Boot: 2.2.8
Packaging: JAR
Java: 8
Dependencies: Spring Web

Step 2: Click on Generate which will download the starter project

Step 3: Extract the zip file. Now open a suitable IDE and then go to File > New > Project from existing sources > Spring-boot-app and select pom.xml. Click on import changes on prompt and wait for the project to sync as pictorially depicted below as follows:

Note: In the Import Project for Maven window, make sure you choose the same version of JDK which you selected while creating the project.

Step 4: Go to src > main > java > com.gfg.Spring.boot.app, create a java class with the name Controller and add the annotation @RestController and other class named as Details.

Details:

Java




public class Details {
  
    // Creating an object of ArrayList
    static ArrayList<Details> Data = new ArrayList<Details>();
    int number;
    String name;
    Details(int number, String name)
    {
        // This keyword refers 
          // to parent instance itself
        this.number = number;
        this.name = name;
    }
}


Controller:

Java




@RestController
// Class
public class Controller {
    // Constructor
    Controller()
    {
        a.add(1);
        a.add(2);
    }
  
    @GetMapping("/hello/{name}/{age}")
    public void insert(@PathVariable("name") String name,
                       @PathVariable("age") int age)
    {
  
        // Print and display name and age
        System.out.println(name);
        System.out.println(age);
    }
  
    // Creating an empty ArrayList
    ArrayList<Integer> a = new ArrayList<>();
  
    // Annotation
    @DeleteMapping("/hello/{id}")
    // Method
    public void deleteById(@PathVariable("id") int id)
    {
        a.remove(new Integer((id)));
        print();
    }
    
       // Handling post request
    @PostMapping("/EnterDetails")
    String insert(@RequestBody Details ob)
    {
        // Storing the incoming data in the list
        Data.add(new Details(ob.number, ob.name));
  
        // Iterating using foreach loop
        for (Details obd : Data) {
            System.out.println(obd.name + " " + ob.number);
        }
        return "Data Inserted";
    }
  
    // Method
    void print()
    {
        for (int elements : a) {
            System.out.print(elements);
        }
}


This application is now ready to run.

Step 5: Run the SpringBootAppApplication class and wait for the Tomcat server to start.

Note: The default port of the Tomcat server is 8080 and can be changed in the application.properties file.

Let’s make a delete request from the postman

Output: As generated on console 

2

This controller.java file is used for handling all incoming requests from the client-side.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads