我在Spark Framework中注意到了一些事情。它与使用映射路由的尾部斜杠不匹配。所以它认为/ api / test和/ api / test /是不同的URI。
如果有办法将它们一起通配,这很好,但似乎并不存在。我错过了什么吗?
我想要这条路线:
Spark.get("/api/test", (req, res) -> {
return "TEST OK";
});
匹配/ api / test OR / api / test /。就目前而言,它只匹配/ api / test,如果我将其切换为:
Spark.get("/api/test/", (req, res) -> {
return "TEST OK";
});
它仅匹配/api/test/
答案 0 :(得分:11)
您可以使用重定向设置之前的过滤器,例如:
Spark.before((req, res) -> {
String path = req.pathInfo();
if (path.endsWith("/"))
res.redirect(path.substring(0, path.length() - 1));
});
这可能比映射重复的路线更好。
答案 1 :(得分:5)
似乎在2013年之前被问过,但在2015年关闭(我假设没有实施):
https://github.com/perwendel/spark/issues/97
路由应该匹配和不跟踪斜杠#97
jsnoriegam于2013年8月31日开设此期刊
ryber在2013年10月14日为ryber / spark添加了一个引用此问题的提交
tipsy在2015年11月22日添加了功能请求标签
perwendel于2015年11月23日关闭此消息
ryber发出拉动请求,解决了这个问题:
https://github.com/ryber/spark/commit/556597e679dc224719188f8d27d8ba10e58fd8bb
但是,这似乎不是当前SimpleRouteMatcher
类的一部分: