Какой лучший способ сделать перенаправление на стороне сервера для вызова REST?
Рассмотрим следующий сценарий:
@RestController
@RequestMapping("/first")
public class FirstController {
@GetMapping
public String duStuff(){
//Redirect to SecondController's doStuff()
}
}
@RestController
@RequestMapping("/second")
public class SecondController {
@GetMapping
public String doStuff(){
//Redirect here from FirstController's do stuff()
}
}
Я знаю спецификации HTTPутверждаю, что 3XX коды состояния ответа должны использоваться для перенаправления, но, насколько я понимаю, это делается на стороне клиента (клиент вызывает вызывающий URI, указанный в заголовке ответа Location
).
Единственным способом, которым мне удалось это реализовать, было использование RestTemplate
, который выполняет запрос от конечной точки в FirstController
к конечной точке в SecondController
.Это работает, но мне любопытно, есть ли лучший способ добиться этого.
@RestController
@RequestMapping("/first")
public class FirstController {
@Autowired
private RestTemplate template;
@GetMapping
public String duStuff(){
/** Is there a better way of doing this, considering I don't want
to get the client involved in the redirect to `second`? */
return template.getForEntity("second", String.class).getBody();
}
}
Примечание: Это , а не приложение Spring MVC (поэтому яневозможно перенаправить через return new ModelAndView("redirect:/redirectUrl", model)
или RedirectView
)
Спасибо за помощь!