0
0
Spring Bootframework~20 mins

@RequestMapping for base paths in Spring Boot - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
SpringBoot @RequestMapping Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What is the base URL path for this controller?
Given the following Spring Boot controller code, what is the base URL path that all methods inside this controller will respond to?
Spring Boot
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/v1/users")
public class UserController {

    @RequestMapping("/list")
    public String listUsers() {
        return "User list";
    }

    @RequestMapping("/detail")
    public String userDetails() {
        return "User details";
    }
}
A/list
B/detail
C/api/v1/users/list
D/api/v1/users
Attempts:
2 left
💡 Hint
Look at the @RequestMapping annotation on the class level.
state_output
intermediate
2:00remaining
What URL path does the listUsers() method respond to?
Using the same controller code, what is the full URL path that the listUsers() method will respond to?
Spring Boot
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/v1/users")
public class UserController {

    @RequestMapping("/list")
    public String listUsers() {
        return "User list";
    }

    @RequestMapping("/detail")
    public String userDetails() {
        return "User details";
    }
}
A/api/v1/users/list
B/api/v1/users/detail
C/api/v1/users
D/list
Attempts:
2 left
💡 Hint
Combine the class-level and method-level @RequestMapping paths.
📝 Syntax
advanced
2:00remaining
Which option correctly sets a base path with multiple paths in @RequestMapping?
You want your controller to respond to two base paths: "/api/v1/users" and "/users". Which @RequestMapping annotation syntax correctly sets this?
A@RequestMapping({"/api/v1/users", "/users"})
B@RequestMapping("/api/v1/users", "/users")
C@RequestMapping(path = "/api/v1/users", path = "/users")
D@RequestMapping(value = "/api/v1/users" & "/users")
Attempts:
2 left
💡 Hint
Check how to specify multiple paths in an array for @RequestMapping.
🔧 Debug
advanced
2:00remaining
What error occurs with this incorrect @RequestMapping usage?
Consider this controller code snippet: @RestController @RequestMapping("/api/v1/users") public class UserController { @RequestMapping public String listUsers() { return "User list"; } @RequestMapping("/detail") public String userDetails() { return "User details"; } } What happens when you try to access "/api/v1/users" in the browser?
A500 Internal Server Error due to missing method path
BReturns "User list" because method-level @RequestMapping with no path matches base path
C404 Not Found error because method-level @RequestMapping requires a path
DCompilation error because @RequestMapping must have a path
Attempts:
2 left
💡 Hint
Method-level @RequestMapping without a path matches the base path.
🧠 Conceptual
expert
3:00remaining
How does @RequestMapping at class and method levels combine for HTTP methods?
Given this controller snippet: @RestController @RequestMapping(path = "/api/v1/items", method = RequestMethod.GET) public class ItemController { @RequestMapping(path = "/create", method = RequestMethod.POST) public String createItem() { return "Item created"; } @RequestMapping(path = "/list") public String listItems() { return "Item list"; } } Which HTTP methods and paths are valid for these two methods?
AcreateItem: POST /api/v1/items/create; listItems: POST /api/v1/items/list
BcreateItem: GET /api/v1/items/create; listItems: GET /api/v1/items/list
CcreateItem: POST /api/v1/items/create; listItems: GET /api/v1/items/list
DcreateItem: GET /api/v1/items/create; listItems: POST /api/v1/items/list
Attempts:
2 left
💡 Hint
Method-level @RequestMapping overrides HTTP method from class-level if specified.