72

我的要求如下:

我想给出演员姓名、开始日期、结束日期并获取他在那段时间演过的所有电影。

因此,我的服务请求是这样的。

  http://localhost:8080/MovieDB/GetJson?name=Actor&startDate=20120101&endDate=20120505

现在,我想改进它。我想给出一个开始日期、结束日期和多个演员的名字,并希望看到那个时期所有这些演员的电影。

我不确定我的网址应该如何支持这样的事情。

我正在使用 Spring 编写基于 Java 的 Web 服务。

下面的代码是为了支持一个演员

   @RequestMapping(value = "/GetJson", method = RequestMethod.GET) 
    public void getJson(@RequestParam("name") String ticker, @RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate) {
   //code to get results from db for those params.
 }

我正在考虑的一种解决方案是使用 % 符号来分隔演员姓名。例如:

 http://localhost:8080/MovieDB/GetJson?name=Actor1%Actor2%Actor3&startDate=20120101&endDate=20120505

现在,在控制器中,我将使用 % 解析名称字符串并取回所有演员的姓名。

这是做到这一点的好方法还是有标准方法?

谢谢

4

1 回答 1

157

用逗号分隔:

http://localhost:8080/MovieDB/GetJson?name=Actor1,Actor2,Actor3&startDate=20120101&endDate=20120505

或者:

http://localhost:8080/MovieDB/GetJson?name=Actor1&name=Actor2&name=Actor3&startDate=20120101&endDate=20120505

或者:

http://localhost:8080/MovieDB/GetJson?name[0]=Actor1&name[1]=Actor2&name[2]=Actor3&startDate=20120101&endDate=20120505

无论哪种方式,您的方法签名都必须是:

@RequestMapping(value = "/GetJson", method = RequestMethod.GET) 
public void getJson(@RequestParam("name") String[] ticker, @RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate) {
   //code to get results from db for those params.
 }
于 2012-08-09T18:54:17.277 回答