Playframework2.2.x中路由接受可變長引數例子
阿新 • • 發佈:2019-02-15
這段時間寫play框架的webservice,遇到了一個問題,就是我們提供的webservice,甲方需要對我們的webservice進行服務狀態的檢測,大家都知道,play裡面函式引數和路由引數是繫結的,函式有幾個引數,路由就必須有幾個引數。甲方的要求是:當我們什麼引數都不傳入的時候你們也要能返回狀態200即可,表示服務正常,怎麼解決?看了play的文件你會發現,我們可以變相的的解決這個問題,看下面例子:
我們這裡可以看到,一般的路由表這麼寫:GET /WS/addNode sourceDirWS.controllers.MainService.addNode(parentNodeId:String ?="",nodeName:String ?="")
GET /WS/addNode sourceDirWS.controllers.MainService.addNode(parentNodeId:String,nodeName:String)
這裡我們只需要在型別後面加上 ?="" 即可,是不是很簡單,這樣別人就可以這麼寫請求,在不加引數前提下也能正常通過路由來呼叫函式 addNode(String parentId,String nodeName)
http://xx.xxx.xx.xx:9000/WS/addNode
我們再看一下函式體:
當然這個不一定非要用在webservice,其他方便需要變長的引數也可以使用。public static Result addResourceNode(String parentNodeId,String nodeName){ response().setContentType("text/javascript; charset=UTF-8"); response().setHeader(ACCESS_CONTROL_ALLOW_ORIGIN,"*"); //判斷一下引數是否存在,若不存在則直接返回ok。用於服務檢測 if("".equals(parentNodeId) && "".equals(nodeName)){ return ok("OK"); }else { ....//你的操作 return ... } }