Bird
Raised Fist0
Spring Bootframework~10 mins

@RequestMapping for base paths 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 set the base path for all requests in this controller.

Spring Boot
@RestController
[1]("/api")
public class ApiController {
    // methods here
}
Drag options to blanks, or click blank then click option'
A@GetMapping
B@RequestMapping
C@PostMapping
D@PathVariable
Attempts:
3 left
💡 Hint
Common Mistakes
Using @GetMapping or @PostMapping at class level instead of @RequestMapping.
Forgetting to add the base path in the annotation.
2fill in blank
medium

Complete the code to map GET requests to the '/users' path under the base path.

Spring Boot
@RestController
@RequestMapping("/api")
public class UserController {
    @[1]("/users")
    public String getUsers() {
        return "";
    }
}
Drag options to blanks, or click blank then click option'
AGetMapping
BPostMapping
CRequestMapping
DDeleteMapping
Attempts:
3 left
💡 Hint
Common Mistakes
Using @PostMapping for GET requests.
Using @RequestMapping without specifying method.
3fill in blank
hard

Fix the error in the code to correctly map POST requests to '/submit' under the base path.

Spring Boot
@RestController
@RequestMapping("/form")
public class FormController {
    @RequestMapping(value = "/submit", method = RequestMethod.[1])
    public String submitForm() {
        return "Submitted";
    }
}
Drag options to blanks, or click blank then click option'
AGET
BPUT
CPOST
DDELETE
Attempts:
3 left
💡 Hint
Common Mistakes
Using GET instead of POST for form submission.
Forgetting to specify the method attribute.
4fill in blank
hard

Fill both blanks to create a controller with base path '/shop' and map DELETE requests to '/item'.

Spring Boot
@RestController
[1]("/shop")
public class ShopController {
    @[2]("/item")
    public String deleteItem() {
        return "Item deleted";
    }
}
Drag options to blanks, or click blank then click option'
A@RequestMapping
BGetMapping
CDeleteMapping
DPostMapping
Attempts:
3 left
💡 Hint
Common Mistakes
Using @GetMapping for DELETE requests.
Using @PostMapping at class level.
5fill in blank
hard

Fill all three blanks to define a controller with base path '/blog', map PUT requests to '/post', and GET requests to '/posts'.

Spring Boot
@RestController
[1]("/blog")
public class BlogController {
    @[2]("/post")
    public String updatePost() {
        return "Post updated";
    }

    @[3]("/posts")
    public String getPosts() {
        return "";
    }
}
Drag options to blanks, or click blank then click option'
A@RequestMapping
BPutMapping
CGetMapping
DDeleteMapping
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing HTTP method annotations.
Forgetting to set base path with @RequestMapping.

Practice

(1/5)
1. What does placing @RequestMapping("/api") on a Spring Boot controller class do?
easy
A. Automatically maps all methods to the root URL /.
B. Defines the HTTP method type for all requests in the class.
C. Sets a base URL path for all request methods inside the class.
D. Disables URL mapping for the controller.

Solution

  1. Step 1: Understand class-level @RequestMapping

    When @RequestMapping is placed on a controller class, it sets a base URL path prefix for all methods inside.
  2. Step 2: Effect on method-level mappings

    Each method's path is appended to this base path, organizing URLs under a common root.
  3. Final Answer:

    Sets a base URL path for all request methods inside the class. -> Option C
  4. Quick Check:

    Class-level @RequestMapping sets base path = A [OK]
Hint: Class-level @RequestMapping sets base path prefix [OK]
Common Mistakes:
  • Confusing base path with HTTP method type
  • Thinking it maps all methods to root path
  • Assuming it disables mapping
2. Which of the following is the correct way to set a base path /users for a Spring Boot controller using @RequestMapping?
easy
A. @RequestMapping("/users") on each method only
B. @RequestMapping(path = "/users") on the class
C. @RequestMapping(method = "users") on the class
D. @RequestMapping(basePath = "/users") on the class

Solution

  1. Step 1: Check correct syntax for base path

    The correct attribute to set the path is path or directly the value in @RequestMapping. Using @RequestMapping(path = "/users") is valid and clear.
  2. Step 2: Validate other options

    @RequestMapping("/users") on each method only sets path only on methods, not base path. @RequestMapping(method = "users") on the class incorrectly uses method attribute for path. @RequestMapping(basePath = "/users") on the class uses a non-existent attribute basePath.
  3. Final Answer:

    @RequestMapping(path = "/users") on the class -> Option B
  4. Quick Check:

    Use path attribute with leading slash [OK]
Hint: Use path="/yourBase" with leading slash on class [OK]
Common Mistakes:
  • Using wrong attribute like method= for path
  • Using wrong attribute name like basePath
  • Setting base path only on methods
3. Given the controller class below, what is the full URL path to access the getUser() method?
@RequestMapping("/api")
public class UserController {
  @RequestMapping("/user")
  public String getUser() { return "user"; }
}
medium
A. /user
B. /user/api
C. /api
D. /api/user

Solution

  1. Step 1: Identify class-level base path

    The class has @RequestMapping("/api"), so all method paths start with /api.
  2. Step 2: Append method-level path

    The method getUser() has @RequestMapping("/user"), so the full path is /api + /user = /api/user.
  3. Final Answer:

    /api/user -> Option D
  4. Quick Check:

    Base path + method path = full URL [OK]
Hint: Combine class and method paths with slashes [OK]
Common Mistakes:
  • Ignoring class-level path
  • Mixing order of paths
  • Missing leading slash
4. What is wrong with this controller code?
@RequestMapping("api")
public class ProductController {
  @RequestMapping("/list")
  public String listProducts() { return "products"; }
}
medium
A. Class must be annotated with @RestController or @Controller.
B. Missing leading slash in class-level @RequestMapping path.
C. Method-level @RequestMapping cannot have a path.
D. Method must return ResponseEntity, not String.

Solution

  1. Step 1: Identify missing controller annotation

    The class is missing @Controller or @RestController. Without it, the class is not registered as a handler despite having @RequestMapping.
  2. Step 2: Validate other options

    Method-level paths are allowed. Leading slash is optional (Spring prepends it). Returning String is valid for view names or with @ResponseBody.
  3. Final Answer:

    Class must be annotated with @RestController or @Controller. -> Option A
  4. Quick Check:

    Controller annotation required [OK]
Hint: Use @RestController or @Controller on controller classes [OK]
Common Mistakes:
  • Missing @RestController or @Controller annotation
  • Thinking method paths are disallowed
  • Confusing @Controller with @RestController requirement
5. You want all endpoints in your controller to start with /shop, and inside you have a method mapped to /items. Which of these setups correctly maps the full URL /shop/items and why?
Option A:
@RequestMapping("/shop")
public class ShopController {
  @RequestMapping("/items")
  public String getItems() { return "items"; }
}

Option B:
@RequestMapping("/shop/items")
public class ShopController {
  @RequestMapping
  public String getItems() { return "items"; }
}

Option C:
@RequestMapping
public class ShopController {
  @RequestMapping("/shop/items")
  public String getItems() { return "items"; }
}

Option D:
@RequestMapping(shop)
public class ShopController {
  @RequestMapping(items)
  public String getItems() { return "items"; }
}
hard
A. Option A correctly sets base path and method path with leading slashes.
B. Option B sets full path on class, method has no path, works fine.
C. Option C sets full path on method only, class has no base path.
D. Option D misses leading slashes, so paths are invalid.

Solution

  1. Step 1: Identify the correct configuration

    The setup with class-level @RequestMapping("/shop") and method-level @RequestMapping("/items") combines to /shop/items with full syntax validity (parentheses, quotes, leading slashes).
  2. Step 2: Examine incorrect configurations

    The full class path setup lacks parentheses on method @RequestMapping (syntax error). The full method path setup lacks parentheses on class @RequestMapping (syntax error). The no-slash setup lacks quotes on shop and items (syntax error).
  3. Final Answer:

    Option A correctly sets base path and method path with leading slashes. -> Option A
  4. Quick Check:

    Base path + method path + valid syntax = full URL [OK]
Hint: Use leading slashes on class and method paths for clarity [OK]
Common Mistakes:
  • Missing parentheses in @RequestMapping
  • Missing quotes around path values
  • Omitting leading slashes on paths
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