gpt4 book ai didi

java - SparkJava - 区分大小写的端点

转载 作者:行者123 更新时间:2023-12-02 08:45:10 26 4
gpt4 key购买 nike

我有一个 java 代码,它使用 SparkJava ( http://sparkjava.com/ ) 为 http 端点提供服务。

端点的生成方式如下:

 get("/xxx/yyy", (request, response) -> {
...
return SOMETHING_TO_RETURN
});

采用这种方法我遇到了问题:
假设我定义了一个端点: '/api/status/car' ,
但用户有时会调用“/api/status/CAR”。所以问题是像这样定义的 url 区分大小写。

现在我必须以某种方式修复它:使大小写不敏感。我查看了过滤器(例如“之前”),但我相信我无法修改请求网址(toLowerCase)。

所以主要问题是:使用这种方法定义端点时,如何将请求 url 修改为小写,或者说 Sparkjava 应该使用不区分大小写的模式映射 url。

最佳答案

URL(域名部分除外)可能始终区分大小写。这由服务器决定,因此用户永远无法知道。您可以在W3.org中阅读更多内容。 .

解决问题的一种方法可能是使用请求参数:

get("/api/status/:carParam", (request, response) -> {
if (request.params(":carParam").equalsIgnoreCase("car")) {
return SOMETHING_TO_RETURN;
}
});

如果您在 /api/status/ 下有除 car 之外的更多路线,那么您应该将 :carParam 重命名为更通用的名称,例如 :param 然后在处理程序主体内,您将检查此查询参数并相应地返回正确的返回值。例如:

get("/api/status/:param", (request, response) -> {
if (request.params(":param").equalsIgnoreCase("car")) {
return SOMETHING_TO_RETURN_CAR;
} else if (request.params(":param").equalsIgnoreCase("passenger")) {
return SOMETHING_TO_RETURN_PASSENGER;
}
});

关于java - SparkJava - 区分大小写的端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61121913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com