DEV Community

realNameHidden
realNameHidden

Posted on

4 1 1 1 1

With Spring can I make an optional path variable?


Yes, you can make a path variable optional in Spring by using @PathVariable with the required attribute set to false. However, for this to work, you also need to provide a default value or handle the absence of the variable in your logic.

Here are a few ways to handle optional path variables:

1. Using Default Path Without Variable

Define two endpoints: one with the variable and one without.

@RestController
@RequestMapping("/example")
public class ExampleController {

    @GetMapping
    public String handleWithoutPathVariable() {
        return "No path variable provided";
    }

    @GetMapping("/{id}")
    public String handleWithPathVariable(@PathVariable String id) {
        return "Path variable: " + id;
    }
}

Enter fullscreen mode Exit fullscreen mode

2. Using @PathVariable with required = false

This approach is possible when the path variable is declared in the URL template as optional (e.g., {id?} in Spring Boot 3+).

@RestController
@RequestMapping("/example")
public class ExampleController {

    @GetMapping({"/", "/{id}"})
    public String handleWithOptionalPathVariable(@PathVariable(required = false) String id) {
        if (id == null) {
            return "No path variable provided";
        }
        return "Path variable: " + id;
    }
}

Enter fullscreen mode Exit fullscreen mode

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more

Top comments (0)

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More