2016-07-19 22 views
0

Gibt es eine Möglichkeit (wie in einer Symfony-Anwendung), alle verfügbaren/registrierten Routen auf einem Vertex-Server aufzulisten? Ich stehe vor einem Problem, dass meine registrierte Route einen 404 auf laufenden Resassuit Tests zurückgibt.Alle registrierten Routen in Vertex auflisten

+0

Sie VertX-web Verwenden? Wenn ja, benutze '' 'Router # getRoutes''' (http://vertx.io/docs/apidocs/io/vertx/ext/web/Router.html#getRoutes--). Sie sollten überprüfen, ob Sie das gute Verb, den Pfad und die Header für vertex verwenden, um die Anforderung an den guten Endpunkt zu leiten. – cdelmas

Antwort

3

Ja, aber Sie müssen ein bisschen Code schreiben, um das zu erreichen.

// Example router setup 
Router router = Router.router(vertx); 
router.route(HttpMethod.GET, "/").handler(routingContext -> { 
    routingContext.response().end("Root"); 
}); 

router.route(HttpMethod.GET, "/users").handler(routingContext -> { 
    routingContext.response().end("Post"); 
}); 

router.route(HttpMethod.POST, "/users").handler(routingContext -> { 
    routingContext.response().end("Post"); 
}); 

// Getting the routes 
for (Route r : router.getRoutes()) { 
    // Path is public, but methods are not. We change that 
    Field f = r.getClass().getDeclaredField("methods"); 
    f.setAccessible(true); 
    Set<HttpMethod> methods = (Set<HttpMethod>) f.get(r); 
    System.out.println(methods.toString() + r.getPath()); 
} 

führt dies in:

[GET]/ 
[GET]/users 
[POST]/users