Router Pages
The {@link oajr.BasicRestServletGroup} class provides a default "router" page for
child resources when a parent resource is nothing more than a grouping of child resources.
The RootResources class in the Samples project is an example of a router page:
/**
* Sample REST resource showing how to implement a "router" resource page.
*/
@RestResource(
path="/",
title="Root resources",
description="Example of a router resource page.",
children={
HelloWorldResource.class,
PetStoreResource.class,
PhotosResource.class,
DtoExamples.class,
SqlQueryResource.class,
ConfigResource.class,
LogsResource.class,
DebugResource.class,
ShutdownResource.class
}
)
public class RootResources extends BasicRestServletGroup {
// NO CODE!!!
}
When you bring up this resource in a browser, you see the following that provides a list
of navigable links to your child resources:
http://localhost:10000
The {@link oajr.BasicRestServletGroup} class is nothing more than a subclass of
{@link oajr.BasicRestServlet} with a getChildren() method mapped to the servlet
root path.
The method returns a POJO with is just a linked-list of beans with name/description properties.
// The entire contents of the BasicRestServletGroup class.
public class BasicRestServletGroup extends BasicRestServlet {
@RestMethod(name=GET, path="/", description="Child resources")
public ChildResourceDescriptions getChildren(RestRequest req) {
return new ChildResourceDescriptions(this, req);
}
}