У меня есть контроллер, который вызывает веб-сервис для запуска пакетного задания , когда возвращается результат, он должен вызвать другой REST API на основе этого результата. Затем он должен дождаться нового результата и вернуть второй результат пользователю:
@RestController
public class LaunchController {
@PostMapping(path = "/launch", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<LaunchResult> launch(@Valid @RequestBody LaunchParams params) {
// in launch() I call the first REST API
LaunchResult result = myService.launch(params);
// here I need to call another REST API
AnotherResult result2 = callAnotherWebAPIBasedOnThisResult(result);
return ResponseEntity.ok(result2);
}
Теперь я хочу знать, является ли хорошей практикой делать это так (синхронно) и все в одном контроллере? Есть другой способ сделать это?