使用queryMap进行Spark路由解析

时间:2017-03-28 23:10:05

标签: java rest spark-java

我在我的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 个答案:

答案 0 :(得分:2)

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

  1. 创建两条不同的路线:
  2. get("/template/id/:id") -> controller.getById(req, res).handle(req, res); get("/template/name/:name") -> controller.getByName(req, res).handle(req,res);

    1. 只创建一条路线并使用参数:
    2. get("/template") -> controller.getByIdName(req, res).handle(req, res);

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

      解析req.queryParams("name")内的参数