我们有一个spring网络应用程序,用于处理所有前端和后端逻辑。由于需要扩展,我们已将其分为两个微服务。我将如何将发布请求“转发”到另一个URL(包括其主体和身份验证标头)。例如:
microservice1
具有端点/api/doSomething
microservice2
具有端点/privateUrl/doSomething
我希望用户点击microservice1
上的端点,该端点将发布到microservice2
并返回结果。
我在没有太多运气的情况下尝试过RestTemplate,我一直从microservice1中收到错误消息“无法编写JSON:找不到类的序列化程序...”,我怀疑这是因为microservice1不知道如何解析主体对象microservice2所需
微服务1:
@PostMapping("/api/DoSomething")
fun postIT(request: HttpServletRequest, @PathVariable one: String, @PathVariable two: String){ ...}
微服务2:
@CrossOrigin
@PostMapping("/privateUrl/doSomething")
fun postIT(request: HttpServletRequest, @RequestParam one: String, @RequestParam(required = false, defaultValue = "true") two: String,@RequestBody it: IT) { ... }
我知道我可以解析microservice1
中的整个请求,然后将其发送到microservice2
,但是有一种方法可以将http请求“转发”到新的URL?
答案 0 :(得分:0)
我不确定您的意思是什么,但是如果您想从一台服务器与另一台服务器进行通信,则可以始终使用rest模板(或任何其他模板)并将http请求从一种服务发送到另一种服务,您可以在此处查看示例 https://www.tutorialspoint.com/spring_boot/spring_boot_rest_template.htm https://spring.io/guides/tutorials/bookmarks/
看看它应该对您有用。