2017-03-28 30 views
0

我爲我的API使用Spark java。我有以下網址使用查詢映射的Spark路由解析

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

+0

解析內部getByIdName的PARAMS你能給更多的環境?你在哪裏使用這個代碼,什麼是get()? –

+0

得到是http獲取請求,我在我的SparkConfig類中使用它來將http請求映射到控制器 –

回答

2

兩種可能的解決方案可以使用:

  1. 創建兩個不同的途徑:

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);

    然後用你想要的PARAMS稱呼它,例如: "/template?id=1234&name=Joe"和使用req.queryParams("id")req.queryParams("name")