public class RoutingDsl
extends java.lang.Object
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 javax.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").routeTo(to -> ok("Hello " + to)) .POST("/api/items/:id").routeAsync((Integer id) -> { return Items.save(id, Json.fromJson(request().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.
Modifier and Type | Class and Description |
---|---|
class |
RoutingDsl.PathPatternMatcher
A matcher for routes.
|
Constructor and Description |
---|
RoutingDsl()
Deprecated.
Deprecated as of 2.6.0. Use an injected version instead.
|
RoutingDsl(BodyParser.Default bodyParser,
play.core.j.JavaContextComponents contextComponents) |
RoutingDsl(play.api.mvc.BodyParser<play.api.mvc.AnyContent> bodyParser,
play.core.j.JavaContextComponents contextComponents)
Deprecated.
Deprecated as of 2.6.8. Use
RoutingDsl(play.mvc.BodyParser.Default,
JavaContextComponents) or fromComponents(BuiltInComponents) instead. |
RoutingDsl(play.api.mvc.PlayBodyParsers bodyParsers,
play.core.j.JavaContextComponents contextComponents)
Deprecated.
Deprecated as of 2.6.8. Use
RoutingDsl(play.mvc.BodyParser.Default,
JavaContextComponents) or fromComponents(BuiltInComponents) instead. |
Modifier and Type | Method and Description |
---|---|
Router |
build()
Build the router.
|
RoutingDsl.PathPatternMatcher |
DELETE(java.lang.String pathPattern)
Create a DELETE route for the given path pattern.
|
static RoutingDsl |
fromComponents(BuiltInComponents components) |
RoutingDsl.PathPatternMatcher |
GET(java.lang.String pathPattern)
Create a GET route for the given path pattern.
|
RoutingDsl.PathPatternMatcher |
HEAD(java.lang.String pathPattern)
Create a HEAD route for the given path pattern.
|
RoutingDsl.PathPatternMatcher |
match(java.lang.String method,
java.lang.String pathPattern)
Create a route for the given method and path pattern.
|
RoutingDsl.PathPatternMatcher |
OPTIONS(java.lang.String pathPattern)
Create a OPTIONS route for the given path pattern.
|
RoutingDsl.PathPatternMatcher |
PATCH(java.lang.String pathPattern)
Create a PATCH route for the given path pattern.
|
RoutingDsl.PathPatternMatcher |
POST(java.lang.String pathPattern)
Create a POST route for the given path pattern.
|
RoutingDsl.PathPatternMatcher |
PUT(java.lang.String pathPattern)
Create a PUT route for the given path pattern.
|
@Deprecated public RoutingDsl()
@Deprecated public RoutingDsl(play.api.mvc.BodyParser<play.api.mvc.AnyContent> bodyParser, play.core.j.JavaContextComponents contextComponents)
RoutingDsl(play.mvc.BodyParser.Default,
JavaContextComponents)
or fromComponents(BuiltInComponents)
instead.bodyParser
- the default scala body parser.contextComponents
- java context components.@Deprecated public RoutingDsl(play.api.mvc.PlayBodyParsers bodyParsers, play.core.j.JavaContextComponents contextComponents)
RoutingDsl(play.mvc.BodyParser.Default,
JavaContextComponents)
or fromComponents(BuiltInComponents)
instead.bodyParsers
- scala body parsers.contextComponents
- java context components.@Inject public RoutingDsl(BodyParser.Default bodyParser, play.core.j.JavaContextComponents contextComponents)
public static RoutingDsl fromComponents(BuiltInComponents components)
public RoutingDsl.PathPatternMatcher GET(java.lang.String pathPattern)
pathPattern
- The path pattern.public RoutingDsl.PathPatternMatcher HEAD(java.lang.String pathPattern)
pathPattern
- The path pattern.public RoutingDsl.PathPatternMatcher POST(java.lang.String pathPattern)
pathPattern
- The path pattern.public RoutingDsl.PathPatternMatcher PUT(java.lang.String pathPattern)
pathPattern
- The path pattern.public RoutingDsl.PathPatternMatcher DELETE(java.lang.String pathPattern)
pathPattern
- The path pattern.public RoutingDsl.PathPatternMatcher PATCH(java.lang.String pathPattern)
pathPattern
- The path pattern.public RoutingDsl.PathPatternMatcher OPTIONS(java.lang.String pathPattern)
pathPattern
- The path pattern.public RoutingDsl.PathPatternMatcher match(java.lang.String method, java.lang.String pathPattern)
method
- The method;pathPattern
- The path pattern.public Router build()