SparkJava:从请求中获取路由路径



如果我在SparkJava服务器中有一个像foo/:id这样的路由,我想在我的处理程序中获得该路由字符串。我可以像下面这样获取pathInfo:

Spark.get("foo/:id", (request, response) -> {
var matchedRoute = request.pathInfo();
System.out.println(matchedRoute);
})

但是如果我旋转localhost:8080/foo/1,那么这将打印/foo/1,而不是/foo/:id

是否有可能获得SparkJava匹配请求的路由?

没有固有的方法可以做到这一点,因为匿名函数不会将路由本身作为参数接收。但是你可以把路由添加到请求的"before"部分:

// For every route add these two lines:
String API_PATH_1 = "foo/:id";
before(API_PATH_1, (req, res) -> req.attribute("route", API_PATH_1));
get(API_PATH_1, (req, res) -> {
String route = req.attribute("route");
String matchedRoute = req.pathInfo();
System.out.println("Route:         " + route);
System.out.println("Matched Route: " + matchedRoute);
});

它添加了一些代码,但是如果你在所有的路由中都遵循这种模式,那么在get()部分中,你总是可以调用req.attribute("route"),它会给你想要的。

相关内容

  • 没有找到相关文章

最新更新