I made a spring RESTful web service for giving list of top songs in JSON formate, for this I added song names in a List and I returned this from the @Restcontroller of my Spring RESTful web service.SO @RestController will automatically process this List and rturns me this JSON form ["song1","song2","song3"].
Now can any body tell me how I can return song names with some more attribute like - (Song Name , Film, Lyricist, Singer(s), Total hits) For Example - (“Lungi Dance”, “Chennai Express”, "Honey Singh", "Honey Singh”, 5000).Also tell me how can I access it my spring MVC application calling this web service using RestTemplate. Please tell me the changes in below files.
Inside my @RestController class of my Spring RESTful web service
@RequestMapping(value = "/topsongsWS", headers="Accept=application/json")
Public List<?> getTopSongsWS()
{
List<String> l1 = new ArrayList<String>();
l1.add("mann mera (Table No 21)");
l1.add("Lazy lad (Ghanchakkar)");
l1.add("Oye boy Charlie (Matru Ki Bijli Ka Mandola)");
l1.add("Blue Hai Pani Pani");
l1.add("Latt lag gayi (Race 2)");
return l1;
}
Inside my config-servlet.xml
<context:component-scan base-package="com.songs.service.controller" />
<mvc:annotation-driven />
Inside the controller of my spring MVC app calling this above RESTful web service
@RequestMapping(value="/topsongs",method=RequestMethod.POST)
public String getTopSongs(ModelMap md)
{
//did stuff to configure headers & entity
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntity<String> entity = new HttpEntity<String>(headers);
//this is the URL of my RESTfulservice returning JSON format ["song1","song2","song3"]
String url="http://localhost:7001/SongAppWS/songappWS/topsongsWS";
RestTemplate rt=new RestTemplate();
ResponseEntity<?> listoftopmovies=rt.exchange(url,HttpMethod.GET,entity, List.class);
md.addAttribute("listname", "Top 5 Songs of The Week:");
String response=listoftopmovies.getBody().toString();
List<String> listed = new ArrayList<String>(Arrays.asList(response.split(", ")));
md.addAttribute("res",listed);
return "Sucess";
}