我制作了一个 Spring RESTful Web 服务,用于以 JSON 格式提供热门歌曲列表,为此,我在列表中添加了歌曲名称,并从 Spring RESTful Web 服务的 @Restcontroller 返回了该名称。所以 @RestController 将自动处理此列表并r给我这个 JSON 形式 ["song1","song2","song3"]。
现在任何人都可以告诉我如何返回具有更多属性的歌曲名称,例如- (歌曲名称、影片、作词者、歌手、总点击量)
例如 - (“Lungi Dance”、“Chennai Express”、“Honey Singh”、“Honey Singh”、5000)。还告诉我如何使用 RestTemplate 调用此 Web 服务的 Spring MVC 应用程序访问它。请告诉我以下文件中的更改。
在我的 Spring RESTful Web 服务的 @RestController 类中
@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;
}
在我的 config-servlet.xml 中
<context:component-scan base-package="com.songs.service.controller" />
<mvc:annotation-driven />
在我的 spring MVC 应用程序的控制器内调用上面的 RESTful Web 服务
@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";
}