我需要一个休息终点,其响应是html。但是,我希望从我的项目中定义的视图中定义了一个视图,而是想从该休息终点内提出的另一个请求中转发HTML响应。例如,我的休息终点向内部服务提出了HTTP请求,并返回从该服务返回的HTML?是否可以?有什么想法吗?这是一个代码示例
@RequestMapping("/test")
public String testMe(Model model, @RequestParam("param1") String param1, @RequestParam("param2") String param2)
{
//Make a Http call to an internal service and return the response from that call
return "<RESPONSE_FROM_THAT_CALL>";
}
我想从内部服务返回HTML响应
您可以使用RestTemplate
从其他服务中获取结果,然后将其返回为String
:
@Controller
public class MyController {
private RestTemplate restTemplate = new RestTemplate();
@ResponseBody
@RequestMapping("/test")
public String testMe(Model model, @RequestParam("param1") String param1, @RequestParam("param2") String param2) {
URI uri = UriComponentsBuilder.fromHttpUrl("http://www.example.com");
.queryParam("param1", param1)
.queryParam("param2", param2)
.build()
.toUri());
return restTemplate.getForObject(uri, String.class);
}
}
如果您将拥有更多想要代理另一个服务的端点,则应考虑使用例如Zuul作为微观代理。参见例如这篇博客文章解释了如何轻松创建这样的代理。