public static class Route.Definition extends Object
It's pretty straight forward:
public class MyApp extends Jooby { { get("/", (req, rsp) -> rsp.send("GET")); post("/", (req, rsp) -> rsp.send("POST")); put("/", (req, rsp) -> rsp.send("PUT")); delete("/", (req, rsp) -> rsp.status(Response.Status.NO_CONTENT)); } }
public class MyApp extends Jooby { { post("/", (req, resp) -> resp.send("POST")) .consumes(MediaType.json); } }
public class MyApp extends Jooby { { post("/", (req, resp) -> resp.send("POST")) .produces(MediaType.json); } }
public class MyApp extends Jooby { { post("/", (req, resp) -> resp.send("POST")) .name("My Root"); } }
Constructor and Description |
---|
Definition(String method,
String pattern,
Route.Filter filter)
Creates a new route definition.
|
Definition(String verb,
String pattern,
Route.Handler handler)
Creates a new route definition.
|
Definition(String verb,
String pattern,
Route.OneArgHandler handler)
Creates a new route definition.
|
Definition(String verb,
String pattern,
Route.ZeroArgHandler handler)
Creates a new route definition.
|
Modifier and Type | Method and Description |
---|---|
boolean |
canConsume(MediaType type)
Test if the route definition can consume a media type.
|
boolean |
canConsume(String type)
Test if the route definition can consume a media type.
|
boolean |
canProduce(List<MediaType> types)
Test if the route definition can consume a media type.
|
boolean |
canProduce(MediaType... types)
Test if the route definition can consume a media type.
|
boolean |
canProduce(String... types)
Test if the route definition can consume a media type.
|
List<MediaType> |
consumes() |
Route.Definition |
consumes(List<MediaType> consumes)
Set the media types the route can consume.
|
Route.Definition |
consumes(MediaType... consumes)
Set the media types the route can consume.
|
Route.Definition |
consumes(String... consumes)
Set the media types the route can consume.
|
List<String> |
excludes() |
Route.Definition |
excludes(List<String> excludes)
Excludes one or more path pattern from this route, useful for filter:
|
Route.Definition |
excludes(String... excludes)
Excludes one or more path pattern from this route, useful for filter:
|
Route.Filter |
filter() |
Optional<Route> |
matches(String verb,
String path,
MediaType contentType,
List<MediaType> accept)
Test if the route matches the given verb, path, content type and accept header.
|
String |
method() |
String |
name()
Route's name, helpful for debugging but also to implement dynamic and advanced routing.
|
Route.Definition |
name(String name)
Set the route name.
|
String |
pattern()
Path Patterns
|
List<MediaType> |
produces() |
Route.Definition |
produces(List<MediaType> produces)
Set the media types the route can produces.
|
Route.Definition |
produces(MediaType... produces)
Set the media types the route can produces.
|
Route.Definition |
produces(String... produces) |
String |
toString() |
List<String> |
vars() |
public Definition(String verb, String pattern, Route.Handler handler)
verb
- A HTTP verb or *
.pattern
- A path pattern.handler
- A route handler.public Definition(String verb, String pattern, Route.OneArgHandler handler)
verb
- A HTTP verb or *
.pattern
- A path pattern.handler
- A route handler.public Definition(String verb, String pattern, Route.ZeroArgHandler handler)
verb
- A HTTP verb or *
.pattern
- A path pattern.handler
- A route handler.public Definition(String method, String pattern, Route.Filter filter)
method
- A HTTP verb or *
.pattern
- A path pattern.filter
- A callback to execute.public String pattern()
Jooby supports Ant-style path patterns:
Some examples:
com/t?st.html
- matches com/test.html
but also com/tast.jsp
or
com/txst.html
com/*.html
- matches all .html
files in the com
directorycom/**/test.html
- matches all test.html
files underneath
the com
path**
/*
- matches any path at any level.*
- matches any path at any level, shorthand for **
/*
.Jooby supports path parameters too:
Some examples:
/user/{id}
- /user/* and give you access to the id
var. /user/:id
- /user/* and give you access to the id
var. /user/{id:\\d+}
- /user/[digits] and give you access to the numeric
id
var.public Optional<Route> matches(String verb, String path, MediaType contentType, List<MediaType> accept)
verb
- A HTTP verb.path
- Current HTTP path.contentType
- The Content-Type
header.accept
- The Accept
header.public String method()
*
.public Route.Filter filter()
public String name()
Route.Chain.next(String, Request, Response)
anonymous
.public Route.Definition name(String name)
Route.Chain.next(String, Request, Response)
name
- A route's name.public boolean canConsume(MediaType type)
type
- A media type to test.public boolean canConsume(String type)
type
- A media type to test.public boolean canProduce(List<MediaType> types)
types
- A media types to test.public boolean canProduce(MediaType... types)
types
- A media types to test.public boolean canProduce(String... types)
types
- A media types to test.public Route.Definition consumes(MediaType... consumes)
consumes
- The media types to test for.public Route.Definition consumes(String... consumes)
consumes
- The media types to test for.public Route.Definition consumes(List<MediaType> consumes)
consumes
- The media types to test for.public Route.Definition produces(MediaType... produces)
produces
- The media types to test for.public Route.Definition produces(String... produces)
public Route.Definition produces(List<MediaType> produces)
produces
- The media types to test for.public Route.Definition excludes(String... excludes)
{ use("*", req -> { ... }).excludes("/logout"); }
excludes
- A path pattern.public Route.Definition excludes(List<String> excludes)
{ use("*", req -> { ... }).excludes("/logout"); }
excludes
- A path pattern.Copyright © 2015. All rights reserved.