My requirement is as follows:
I want to give actor name, start date, end date and get all the films he acted in that period.
For that reason, my service request is like this.
http://localhost:8080/MovieDB/GetJson?name=Actor&startDate=20120101&endDate=20120505
Now, i want to improve it. I want to give a start date, end date and more than one actor name and want to see all those actors movies in that period.
I am not sure how should my url look to support such thing.
I am writing a java based web service using spring.
Below code is to support one actor
@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. }
One solution i am thinking is using a % symbol to seperate actor names. For example:
http://localhost:8080/MovieDB/GetJson?name=Actor1%Actor2%Actor3&startDate=20120101&endDate=20120505
Now, in the controller i will parse the name string with % and get back all actors names.
Is this a good way to do this or is there a standard approach?
Thanks
We can also use urlencode() function with serialize() function to create an URL-encoded string. In the given example, first we have converted the array into its byte stream representation, which is a string using serialize() function. And then, we have created an URL-encoded string of that byte stream.
URLSearchParams only accepts string parameters, not arrays!
We can also pass an array with tuples or a query string. With that done, we now have an instance of the URLSearchParams class. We can get the string version of this by calling toString and append this to our URL.
Separate with commas:
http://localhost:8080/MovieDB/GetJson?name=Actor1,Actor2,Actor3&startDate=20120101&endDate=20120505
or:
http://localhost:8080/MovieDB/GetJson?name=Actor1&name=Actor2&name=Actor3&startDate=20120101&endDate=20120505
or:
http://localhost:8080/MovieDB/GetJson?name[0]=Actor1&name[1]=Actor2&name[2]=Actor3&startDate=20120101&endDate=20120505
Either way, your method signature needs to be:
@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. }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With