问题
我希望网址片段here/is/a/request/to/letsay/a/user
在Play中变成一个参数orginalRequest
!路线
为什么
要使用JSON和AJAX解决同源策略,我们决定在我们自己的服务器上运行web services client,将所有JSON调用重定向到外部REST API。
Play中有没有办法!框架路由文件,我可以威胁/ api /之后的任何一个参数吗?
路线:
GET /api/fromhere/is/what/iwant/as/single/parameter App.getFromOtherDomain
在App中:
public void getFromOtherDomain(String orginalRequest){
WSRequest req = WS.url("https://api.otherdomain.com/" + orginalRequest);
Promise<HttpResponse> respAsync = req.getAsync();
HttpResponse resp = await(respAsync);
renderJSON(resp.getJson());
}
答案 0 :(得分:5)
在播放1.x 中,您使用RegEx:
路线:
GET /files/{<[a-z0-9/\.]*>name} Application.download(name)
在 Play 2.0 中,你可以做得更短:
路线:
GET /files/*name Application.download(name)
呼叫:
http://yourserver/files/public/downloads/hello.png
在下载操作中,name
将等于"public/downloads/hello.png"
。
答案 1 :(得分:1)
您可以使用request.path and request.uri从控制器中提取所需信息,然后使用提取的信息调用其他方法。