Bird
Raised Fist0
Spring Bootframework~10 mins

@RestController annotation in Spring Boot - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define a REST controller class in Spring Boot.

Spring Boot
import org.springframework.web.bind.annotation.[1];

@[1]
public class HelloController {
    // controller methods
}
Drag options to blanks, or click blank then click option'
AService
BRestController
CComponent
DRepository
Attempts:
3 left
💡 Hint
Common Mistakes
Using @Service or @Component instead of @RestController
Forgetting to import the annotation
2fill in blank
medium

Complete the code to create a GET endpoint that returns a greeting string.

Spring Boot
@RestController
public class GreetingController {

    @[1]("/greet")
    public String greet() {
        return "Hello!";
    }
}
Drag options to blanks, or click blank then click option'
AGetMapping
BPostMapping
CRequestMapping
DDeleteMapping
Attempts:
3 left
💡 Hint
Common Mistakes
Using @PostMapping for a GET request
Not specifying the path in the annotation
3fill in blank
hard

Fix the error in the code by completing the annotation to handle POST requests.

Spring Boot
@RestController
public class DataController {

    @[1]("/data")
    public String saveData() {
        return "Data saved";
    }
}
Drag options to blanks, or click blank then click option'
APatchMapping
BPutMapping
CGetMapping
DPostMapping
Attempts:
3 left
💡 Hint
Common Mistakes
Using @GetMapping for POST requests
Using incorrect HTTP method annotations
4fill in blank
hard

Fill both blanks to create a REST controller with a GET endpoint returning JSON.

Spring Boot
import org.springframework.web.bind.annotation.[1];
import org.springframework.web.bind.annotation.[2];

@[1]
public class UserController {

    @[2]("/user")
    public User getUser() {
        return new User("Alice", 30);
    }
}
Drag options to blanks, or click blank then click option'
ARestController
BService
CGetMapping
DPostMapping
Attempts:
3 left
💡 Hint
Common Mistakes
Using @Service instead of @RestController
Using @PostMapping for a GET endpoint
5fill in blank
hard

Fill both blanks to create a REST controller with a POST endpoint that accepts JSON and returns a confirmation string.

Spring Boot
import org.springframework.web.bind.annotation.[1];
import org.springframework.web.bind.annotation.[2];
import org.springframework.web.bind.annotation.RequestBody;

@[1]
public class OrderController {

    @[2]("/order")
    public String placeOrder(@RequestBody Order order) {
        return "Order placed for " + order.getItem();
    }
}
Drag options to blanks, or click blank then click option'
ARestController
BPostMapping
CGetMapping
DService
Attempts:
3 left
💡 Hint
Common Mistakes
Using @GetMapping for POST requests
Forgetting @RequestBody for JSON input

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