让我们考虑一下我有两个Web应用程序A和B的情况
初始数据来到A,我有下一个控制器:
@RestController
public class restController {
@RequestMapping(path = "/testA", method = RequestMethod.POST)
public final void test(*inputdata*) { "redirect POST to B app" }
}
此数据必须发送到应用B:
@RestController
public class restController {
@RequestMapping(path = "/testB", method = RequestMethod.POST)
public final void test(*inputdata*) { 'some logic' }
}
必须将逻辑结果发送回A app。
通信必须以RESTful格式进行。
据我发现"谷歌搜索" Spring没有办法做到这一点,我必须创建自定义" POST"方法,是真的吗?因为此链接http://www.baeldung.com/spring-redirect-and-forward包含有关"重定向HTTP POST请求的信息"但我不能按照他们的方式使用它。
谢谢!
答案 0 :(得分:2)
redirect
转到用户浏览器,然后转到重定向的网址。它将始终作为GET
请求。在您的情况下,您将不得不使用A中的httpclient
(RestTemplate)从A调用应用程序B.我不确定这是否满足您的要求。甲
另一种方法是发送一个页面作为A请求的响应,并让页面提交一个ajax请求,这是一个POST,但我想,因为你想要REST上的所有内容,这可能不是你想要的。
答案 1 :(得分:1)
您可以使用RestTemplate或Feign Client。
RestTemplate帖子示例:
Foo foo = restTemplate.postForObject("/testB", request, Foo.class);
但是,当您使用微服务时,您应该使用Feign客户端进行微服务通信。
修改:
Feign比RestTemplate提供了许多额外的好处。
示例:Feign客户端提供开箱即用的负载平衡。
您可以阅读更多here