我正在使用 Spark java 作为我的 API。我有以下网址
get("/template/:id") -> controller.getById(req, res).handle(req, res)
get("/template/:name") -> controller.getByName(req, res).handle(req, res)
现在我的方法 getByName 将不会被调用,因为请求将始终将其映射到 :id 调用。那么有没有一种方法可以在 Spark-Java 中处理这个问题。我猜 QueryMap 可能很有用,但我不知道如何使用它。
最佳答案
您可以使用两种可能的解决方案:
- 创建两条不同的路线:
get("/template/id/:id") ->controller.getById(req, res).handle(req, res);
get("/template/name/:name") ->controller.getByName(req, res).handle(req,res);
- 仅创建一条路由并使用参数:
get("/template") ->controller.getByIdName(req, res).handle(req, res);
然后用你想要的参数调用它,例如:
"/template?id=1234&name=Joe"
并使用 req.queryParams("id")
和 解析
getByIdName
内的参数req.queryParams("名称")
关于java - 使用 queryMap 进行 Spark 路由解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43081495/