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, RequestEchoResource.class, AddressBookResource.class, SampleRrpcServlet.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); } }