Package play.routing
Class RoutingDsl
java.lang.Object
play.routing.RoutingDsl
A DSL for building a router.
This DSL matches requests based on method and a path pattern, and is able to extract up to three parameters out of the path pattern to pass into lambdas.
The passed in lambdas may optionally declare the types of the input parameters. If they don't, the JVM will infer a type of Object, but the parameters themselves are passed in as Strings. Supported types are java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double, java.lang.Boolean, and any class that extends play.mvc.PathBindable. The router will attempt to decode parameters using a PathBindable for each of those types, if it fails it will return a 400 error.
Example usage:
import jakarta.inject.*;
import play.mvc.*;
import play.routing.*;
import play.libs.json.*;
import play.api.routing.Router;
public class MyRouterBuilder extends Controller {
private final RoutingDsl routingDsl;
\@Inject
public MyRouterBuilder(RoutingDsl routingDsl) {
this.routingDsl = routingDsl;
}
public Router getRouter() {
return this.routingDsl
.GET("/hello/:to").routingTo((req, to) -> ok("Hello " + to))
.POST("/api/items/:id").routingAsync((Http.Request req, Integer id) -> {
return Items.save(id,
Json.fromJson(req.body().asJson(), Item.class)
).map(result -> ok("Saved item with id " + id));
})
.build();
}
}
The path pattern supports three different types of parameters, path segment parameters, prefixed
with :, full path parameters, prefixed with *, and regular expression parameters, prefixed with $
and post fixed with a regular expression in angled braces.-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsConstructorDescriptionRoutingDsl(BodyParser.Default bodyParser) RoutingDsl(BodyParser.Default bodyParser, play.core.j.JavaContextComponents contextComponents) Deprecated.Deprecated as of 2.8.0. -
Method Summary
Modifier and TypeMethodDescriptionbuild()Build the router.Create a DELETE route for the given path pattern.static RoutingDslfromComponents(BuiltInComponents components) Create a GET route for the given path pattern.Create a HEAD route for the given path pattern.Create a route for the given method and path pattern.Create a OPTIONS route for the given path pattern.Create a PATCH route for the given path pattern.Create a POST route for the given path pattern.Create a PUT route for the given path pattern.
-
Constructor Details
-
RoutingDsl
-
RoutingDsl
@Deprecated public RoutingDsl(BodyParser.Default bodyParser, play.core.j.JavaContextComponents contextComponents) Deprecated.Deprecated as of 2.8.0. Use constructor without JavaContextComponents
-
-
Method Details
-
fromComponents
-
GET
Create a GET route for the given path pattern.- Parameters:
pathPattern- The path pattern.- Returns:
- A GET route matcher.
-
HEAD
Create a HEAD route for the given path pattern.- Parameters:
pathPattern- The path pattern.- Returns:
- A HEAD route matcher.
-
POST
Create a POST route for the given path pattern.- Parameters:
pathPattern- The path pattern.- Returns:
- A POST route matcher.
-
PUT
Create a PUT route for the given path pattern.- Parameters:
pathPattern- The path pattern.- Returns:
- A PUT route matcher.
-
DELETE
Create a DELETE route for the given path pattern.- Parameters:
pathPattern- The path pattern.- Returns:
- A DELETE route matcher.
-
PATCH
Create a PATCH route for the given path pattern.- Parameters:
pathPattern- The path pattern.- Returns:
- A PATCH route matcher.
-
OPTIONS
Create a OPTIONS route for the given path pattern.- Parameters:
pathPattern- The path pattern.- Returns:
- A OPTIONS route matcher.
-
match
Create a route for the given method and path pattern.- Parameters:
method- The method;pathPattern- The path pattern.- Returns:
- A route matcher.
-
build
Build the router.- Returns:
- The built router.
-