如何在Play中将网址段转换为单个参数!骨架

时间:2011-11-18 17:58:41

标签: java json routes playframework same-origin-policy

问题

我希望网址片段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());
}

2 个答案:

答案 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从控制器中提取所需信息,然后使用提取的信息调用其他方法。