使用 queryMap 进行 Spark 路由解析

Spark route resolution using queryMap

我正在为我的 API 使用 Spark java。我有以下网址

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 可能会有用,但我不知道如何使用它。

您可以使用两种可能的解决方案:

  1. 创建两条不同的路线:

get("/template/id/:id") -> controller.getById(req, res).handle(req, res); get("/template/name/:name") -> controller.getByName(req, res).handle(req,res);

  1. 只创建一个路由并使用参数:

get("/template") -> controller.getByIdName(req, res).handle(req, res);

然后用你想要的参数调用它,例如: "/template?id=1234&name=Joe" 并使用 req.queryParams("id")req.queryParams("name")

解析 getByIdName 中的参数