Spring – REST Controller

26 Nov, 2021
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 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// Classpublic 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.
Java-Spring
Picked
Java
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to iterate any Map in Java
Interfaces in Java
HashMap in Java with Examples
Stream In Java
ArrayList in Java
Collections in Java
Singleton Class in Java
Multidimensional Arrays in Java
Set in Java
Stack Class in Java