Spark Framework:匹配有或没有尾部斜杠
Spark Framework: Match with or without trailing slash
我注意到 Spark 框架中的一些东西。它不匹配带有映射路由的尾部斜杠。因此它将 /api/test 和 /api/test/ 视为不同的 URI。
如果有一种方法可以将它们通配在一起,那很好,但似乎没有。我错过了什么吗?
我想要这条路线:
Spark.get("/api/test", (req, res) -> {
return "TEST OK";
});
匹配 /api/test 或 /api/test/。就目前而言,它只匹配 /api/test,如果我将其切换为:
Spark.get("/api/test/", (req, res) -> {
return "TEST OK";
});
只匹配/api/test/
2013年好像有人问过,2015年就关闭了(估计没实现):
https://github.com/perwendel/spark/issues/97
Routes should match with and without trailing slash #97
jsnoriegam opened this issue on Aug 31, 2013
ryber added a commit to ryber/spark that referenced this issue on Oct 14, 2013
tipsy added the Feature request label on Nov 22, 2015
perwendel closed this on Nov 23, 2015
ryber 提出了一个修复此问题的拉取请求:
https://github.com/ryber/spark/commit/556597e679dc224719188f8d27d8ba10e58fd8bb
但是,这似乎不是当前的一部分 SimpleRouteMatcher
class:
您可以使用重定向设置 before 过滤器,例如:
Spark.before((req, res) -> {
String path = req.pathInfo();
if (path.endsWith("/"))
res.redirect(path.substring(0, path.length() - 1));
});
这可能比映射重复路线要好。
我注意到 Spark 框架中的一些东西。它不匹配带有映射路由的尾部斜杠。因此它将 /api/test 和 /api/test/ 视为不同的 URI。
如果有一种方法可以将它们通配在一起,那很好,但似乎没有。我错过了什么吗?
我想要这条路线:
Spark.get("/api/test", (req, res) -> {
return "TEST OK";
});
匹配 /api/test 或 /api/test/。就目前而言,它只匹配 /api/test,如果我将其切换为:
Spark.get("/api/test/", (req, res) -> {
return "TEST OK";
});
只匹配/api/test/
2013年好像有人问过,2015年就关闭了(估计没实现):
https://github.com/perwendel/spark/issues/97
Routes should match with and without trailing slash #97
jsnoriegam opened this issue on Aug 31, 2013
ryber added a commit to ryber/spark that referenced this issue on Oct 14, 2013
tipsy added the Feature request label on Nov 22, 2015
perwendel closed this on Nov 23, 2015
ryber 提出了一个修复此问题的拉取请求:
https://github.com/ryber/spark/commit/556597e679dc224719188f8d27d8ba10e58fd8bb
但是,这似乎不是当前的一部分 SimpleRouteMatcher
class:
您可以使用重定向设置 before 过滤器,例如:
Spark.before((req, res) -> {
String path = req.pathInfo();
if (path.endsWith("/"))
res.redirect(path.substring(0, path.length() - 1));
});
这可能比映射重复路线要好。