Подтвердить что ты не робот

Как отправить массив в url-запросе

Мое требование следующее:

Я хочу дать имя актера, дату начала, дату окончания и получить все фильмы, которые он снимал в этот период.

По этой причине мой запрос службы выглядит следующим образом.

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

Теперь я хочу улучшить его. Я хочу дать дату начала, дату окончания и более одного имени актера и хочу видеть все эти фильмы актеров в этот период.

Я не уверен, как должен выглядеть мой url для поддержки такой вещи.

Я пишу веб-службу на основе Java, используя spring.

Ниже приведен код поддержки одного участника

   @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

Теперь в контроллере я проанализирую строку имени с% и верну всех имен актеров.

Это хороший способ сделать это или есть стандартный подход?

Спасибо

4b9b3361

Ответ 1

Разделить запятыми:

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.
 }