package restx.server; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Optional; import com.google.common.collect.ImmutableMap; import restx.*; import restx.entity.MatchedEntityOutputRoute; import restx.entity.MatchedEntityRoute; import restx.servlet.AbstractRestxMainRouterServlet; import java.io.IOException; import java.util.Map; /** * User: xavierhanin * Date: 2/16/13 * Time: 4:24 PM */ @SuppressWarnings("unchecked") public class WebServerExample { private static final ObjectMapper mapper = new ObjectMapper(); private static final RestxMainRouter ROUTER = StdRestxMainRouter.builder() .addRouter(RestxRouter.builder() .withMapper(mapper) .GET("/route1/{id}", Map.class, new MatchedEntityOutputRoute() { @Override public Optional route(RestxRequest restxRequest, RestxRequestMatch match) { return Optional.of(ImmutableMap.of("id", match.getPathParam("id"))); } }) .GET("/route2", Map.class, new MatchedEntityOutputRoute() { @Override public Optional<?> route(RestxRequest restxRequest, RestxRequestMatch match) throws IOException { return Optional.of(ImmutableMap.of("path", "route2")); } }) .GET("/route3", Map.class, new MatchedEntityOutputRoute() { @Override public Optional<?> route(RestxRequest restxRequest, RestxRequestMatch match) throws IOException { return Optional.of(ImmutableMap.of("path", "route3")); } }) .build()) .build(); public static void main(String[] args) throws Exception { WebServer webServer = new JettyWebServer( "src/test/resources/restx/server/WebServerExample-web.xml", ".", 8080, "localhost"); webServer.startAndAwait(); } public static class Servlet extends AbstractRestxMainRouterServlet { public Servlet() { super(ROUTER); } } }