Я ищу, чтобы реализовать способ прямой пересылки запроса POST из одного приложения SpringBoot в другое. Перенаправить запросы GET было легко, и приведенный ниже код показывает, как я получаю ошибку 405, когда я лениво пытаюсь повторно использовать один и тот же путь перенаправления.Перенаправление/перенаправление запроса POST от одного REST API к другому
Я рассмотрел существующие примеры в StackOverflow (наиболее заметно here), но я даже не могу получить это решение для компиляции. Может ли кто-нибудь предложить поправки к приведенному ниже коду, чтобы позволить мне просто перенаправить весь запрос POST?
@RestController
public class Routing {
@Autowired
private RoutingDelegate routingDelegate;
@RequestMapping(value="/**", method=RequestMethod.GET, produces=MediaType.TEXT_PLAIN_VALUE)
public ResponseEntity<String> catchAll(HttpServletRequest request, HttpServletResponse response){
return routingDelegate.redirect(request, response);
}
@RequestMapping(value="/**", method=RequestMethod.POST, produces=MediaType.TEXT_PLAIN_VALUE)
public ResponseEntity<String> catchAllPost(HttpServletRequest request, HttpServletResponse response){
/**
* This returns a 405 error, which is understandable since I'm redirecting a POST request to a GET endpoint
*/
return routingDelegate.redirect(request, response);
}
}
@Service
public class RoutingDelegate {
private final String baseServerUrl = "http://localhost:8080";
public ResponseEntity<String> redirect(HttpServletRequest request, HttpServletResponse response){
try {
String queryString = request.getQueryString();
String redirectUrl = baseServerUrl + request.getRequestURI() +
(queryString != null ? "?" + queryString : "");
response.sendRedirect(redirectUrl);
}
catch (IOException e) {
return new ResponseEntity<String>("REDIRECT ERROR", HttpStatus.INTERNAL_SERVER_ERROR);
}
return new ResponseEntity<String>("", HttpStatus.OK);
}
}