Bird
Raised Fist0
Spring Bootframework~30 mins

@RestController annotation in Spring Boot - Mini Project: Build & Apply

Choose your learning style10 modes available
Using the @RestController Annotation in Spring Boot
📖 Scenario: You are building a simple web service that responds with greeting messages. This service will use Spring Boot to create a REST API endpoint.
🎯 Goal: Create a Spring Boot REST controller using the @RestController annotation that returns a greeting message when accessed via HTTP GET.
📋 What You'll Learn
Create a Spring Boot application class
Create a controller class annotated with @RestController
Add a method that handles GET requests at path /greet
Return a plain text greeting message from the method
💡 Why This Matters
🌍 Real World
REST controllers are used to build web services that communicate over HTTP, commonly used in web and mobile apps.
💼 Career
Understanding @RestController is essential for backend developers working with Spring Boot to create APIs.
Progress0 / 4 steps
1
Create the Spring Boot application class
Create a class called GreetingApplication annotated with @SpringBootApplication and add the main method that runs SpringApplication.run(GreetingApplication.class, args).
Spring Boot
Hint

The main class needs the @SpringBootApplication annotation and a main method to start the app.

2
Create the REST controller class
Create a class called GreetingController and annotate it with @RestController.
Spring Boot
Hint

The controller class must have the @RestController annotation above the class declaration.

3
Add a GET method to return a greeting
Inside the GreetingController class, add a method called greet annotated with @GetMapping("/greet") that returns the string "Hello, Spring Boot!".
Spring Boot
Hint

The method should be public, return a String, and have the @GetMapping("/greet") annotation.

4
Complete the REST controller setup
Ensure the GreetingController class imports org.springframework.web.bind.annotation.GetMapping and that the class and method are properly structured to serve the greeting at /greet.
Spring Boot
Hint

Make sure all necessary imports are present and the class and method annotations are correct.

Practice

(1/5)
1. What is the main purpose of the @RestController annotation in Spring Boot?
easy
A. To create HTML views for web pages
B. To define a service class for business logic
C. To create a controller that returns data directly as JSON or XML
D. To configure database connections

Solution

  1. Step 1: Understand the role of @RestController

    @RestController is used to create REST APIs that return data directly, usually in JSON or XML format.
  2. Step 2: Compare with other options

    Creating HTML views is handled by MVC controllers, defining service classes by @Service, and configuring database connections elsewhere in Spring Boot.
  3. Final Answer:

    To create a controller that returns data directly as JSON or XML -> Option C
  4. Quick Check:

    @RestController = returns data directly [OK]
Hint: Remember: @RestController returns data, not HTML pages [OK]
Common Mistakes:
  • Confusing @RestController with @Service
  • Thinking it renders HTML views
  • Assuming it configures database
2. Which of the following is the correct way to declare a Spring Boot REST controller?
easy
A. @Service public class MyController {}
B. @Controller public class MyController {}
C. @RestService public class MyController {}
D. @RestController public class MyController {}

Solution

  1. Step 1: Identify the correct annotation for REST controllers

    @RestController is the correct annotation to create REST APIs in Spring Boot.
  2. Step 2: Check other annotations

    @Controller is for MVC controllers returning views, @RestService is not a valid annotation, and @Service is for service classes.
  3. Final Answer:

    @RestController public class MyController {} -> Option D
  4. Quick Check:

    Correct REST controller syntax = @RestController public class MyController {} [OK]
Hint: Use @RestController for REST APIs, not @Controller [OK]
Common Mistakes:
  • Using @Controller instead of @RestController
  • Using non-existent @RestService annotation
  • Confusing @Service with controller annotations
3. Given the following code, what will be the output when accessing /hello endpoint?
@RestController
public class HelloController {
    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, Spring!";
    }
}
medium
A. An HTML page displaying "Hello, Spring!"
B. A plain text response with the string "Hello, Spring!"
C. A 404 Not Found error
D. A compilation error due to missing annotations

Solution

  1. Step 1: Understand @RestController behavior

    @RestController returns the method's return value directly as the response body, usually JSON or plain text.
  2. Step 2: Analyze the method return

    The method returns a String "Hello, Spring!" which will be sent as plain text in the response body.
  3. Final Answer:

    A plain text response with the string "Hello, Spring!" -> Option B
  4. Quick Check:

    @RestController + String return = plain text response [OK]
Hint: @RestController returns method data as response body [OK]
Common Mistakes:
  • Expecting an HTML page instead of data
  • Thinking it causes 404 without mapping
  • Assuming compilation error without reason
4. Identify the error in this Spring Boot REST controller code:
@RestController
public class UserController {
    @GetMapping("/user")
    public User getUser() {
        User user = new User();
        user.setName("Alice");
        return user;
    }
}
Assume User is a simple POJO with a name field and getters/setters.
medium
A. No error; code will return User object as JSON
B. User class must be annotated with @Entity
C. Missing @ResponseBody annotation on getUser() method
D. Missing @RequestMapping on class level

Solution

  1. Step 1: Check @RestController effect

    @RestController automatically adds @ResponseBody to all methods, so no need to add it explicitly.
  2. Step 2: Verify User class requirements

    User is a POJO; it does not need @Entity unless used with database. Returning it will serialize to JSON automatically.
  3. Final Answer:

    No error; code will return User object as JSON -> Option A
  4. Quick Check:

    @RestController auto @ResponseBody = No error; code will return User object as JSON [OK]
Hint: @RestController adds @ResponseBody automatically [OK]
Common Mistakes:
  • Adding unnecessary @ResponseBody on methods
  • Confusing @Entity with serialization
  • Thinking class-level @RequestMapping is mandatory
5. You want to create a REST API that returns a list of users as JSON. Which of the following code snippets correctly uses @RestController to achieve this?
hard
A. @RestController public class UserApi { @GetMapping("/users") public List<String> getUsers() { return List.of("Alice", "Bob", "Carol"); } }
B. @RestController public class UserApi { @GetMapping("/users") public String getUsers() { return "Alice, Bob, Carol"; } }
C. @Controller public class UserApi { @GetMapping("/users") public List<String> getUsers() { return List.of("Alice", "Bob", "Carol"); } }
D. @RestController public class UserApi { @RequestMapping("/users") public void getUsers() { System.out.println("Alice, Bob, Carol"); } }

Solution

  1. Step 1: Check @RestController and return type

    @RestController public class UserApi { @GetMapping("/users") public List<String> getUsers() { return List.of("Alice", "Bob", "Carol"); } } uses @RestController and returns a List<String>, which Spring Boot converts to JSON automatically.
  2. Step 2: Analyze other options

    The snippet returning String sends a plain string, not a JSON list. The snippet using @Controller attempts to resolve a view name, not return JSON data. The snippet with void return type sends no response body, only prints to console.
  3. Final Answer:

    @RestController public class UserApi { @GetMapping("/users") public List<String> getUsers() { return List.of("Alice", "Bob", "Carol"); } } -> Option A
  4. Quick Check:

    @RestController + List return = JSON list [OK]
Hint: Return List with @RestController for JSON array response [OK]
Common Mistakes:
  • Using @Controller instead of @RestController for JSON
  • Returning void or printing instead of returning data
  • Returning plain string instead of list for JSON array
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard