webentwicklung-frage-antwort-db.com.de

So senden Sie ein Array in einer URL-Anfrage

Meine Anforderung ist wie folgt:

Ich möchte den Namen des Schauspielers, das Startdatum und das Enddatum angeben und alle Filme erhalten, die er in dieser Zeit gedreht hat.

Aus diesem Grund ist meine Serviceanfrage so.

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

Jetzt möchte ich es verbessern. Ich möchte ein Startdatum, ein Enddatum und mehr als einen Schauspielernamen angeben und all diese Schauspielerfilme in diesem Zeitraum sehen.

Ich bin mir nicht sicher, wie meine URL aussehen soll, um so etwas zu unterstützen.

Ich schreibe einen Java basierten Webdienst mit spring.

Der folgende Code soll einen Schauspieler unterstützen

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

Eine Lösung, die ich denke, ist die Verwendung eines% -Symbols, um die Namen der Schauspieler zu trennen. Beispielsweise:

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

Jetzt analysiere ich im Controller den Namensstring mit% und erhalte alle Schauspielernamen zurück.

Ist dies ein guter Weg, um dies zu tun, oder gibt es einen Standardansatz?

Vielen Dank

45
javaMan

Mit Komma trennen:

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

oder:

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

oder:

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

In jedem Fall muss Ihre Methodensignatur sein:

@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.
 }
109
Brian Dilley