Bird
Raised Fist0
Spring Bootframework~5 mins

@RequestMapping for base paths in Spring Boot - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the @RequestMapping annotation in Spring Boot?

@RequestMapping is used to map web requests to specific handler classes or methods in Spring Boot. It defines the URL path and HTTP method that a controller or method will respond to.

Click to reveal answer
beginner
How does <code>@RequestMapping</code> work when placed on a class level?

When @RequestMapping is placed on a class, it sets a base path for all the methods inside that class. Each method's path is appended to this base path.

Click to reveal answer
beginner
Example: What URL will the method respond to if the class has <code>@RequestMapping("/api")</code> and the method has <code>@RequestMapping("/users")</code>?

The method will respond to requests at /api/users. The class-level path /api is combined with the method-level path /users.

Click to reveal answer
intermediate
Can @RequestMapping specify HTTP methods? How?

Yes. You can specify HTTP methods like GET, POST, etc., using the method attribute, for example: @RequestMapping(value = "/path", method = RequestMethod.GET).

Click to reveal answer
beginner
What happens if you omit the path in <code>@RequestMapping</code> at the class level?
<p>If omitted, the class does not set a base path, so method-level paths are treated as absolute from the root context.</p>
Click to reveal answer
What does @RequestMapping("/app") on a class do?
ASets a base URL path for all methods in the class
BMaps only GET requests to the class
CDefines a response type for the class
DDisables all mappings in the class
If a method has @RequestMapping("/list") and the class has @RequestMapping("/api"), what is the full path?
A/api
B/list
C/api/list
D/list/api
How do you specify that a method should only handle POST requests with @RequestMapping?
AhttpMethod = POST
Bmethod = "POST"
Ctype = POST
Dmethod = RequestMethod.POST
What happens if no @RequestMapping is on the class but methods have paths?
AMethods do not respond to any requests
BMethods respond at root-level paths
CClass path defaults to "/default"
DApplication throws an error
Which annotation is a shortcut for @RequestMapping with GET method?
A@GetMapping
B@PostMapping
C@PutMapping
D@DeleteMapping
Explain how @RequestMapping at the class level affects the URL paths of methods inside the class.
Think about how a street address works with a building and apartment number.
You got /3 concepts.
    Describe how to restrict a method to handle only POST requests using @RequestMapping.
    Consider how a door might only open for certain visitors.
    You got /3 concepts.

      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