В настоящее время я работаю над проверкой концепции для полностью асинхронного REST API на основе сообщений (Akka).За исключением того, что у меня уже есть некоторые проблемы с тем, как платформа Play обрабатывает запросы.Из примеров и руководств кажется, что это стандартная настройка для конечной точки GET (код сокращен для примера кода):
public class APIController extends Controller {
public Result getRecord(int id){
return ok("ok");
}
}
Таким образом, потоком по умолчанию будет то, что метод, связанный с конечной точкой API, будет найден с использованием маршрутизации.файл и затем вызывается, затем он ожидает возвращаемое значение типа Result (или CompletionStage), которое будет использоваться для ответа на источник HTTP-запроса с чем-либо, что было в него добавлено.
Я хотел бы переместить ответственностьотвечая на запрос другого метода, который вызывается моей системой обмена сообщениями (используя Akka), чтобы убедиться, что каждая его часть работает в асинхронном режиме.Так что хорошим примером может служить способ исправления этого с помощью Node.JS, который передает фактическую переменную ответа из исходной функции конечной точки в последующие сообщения, позволяя любому шагу по пути отправлять ответ HTTP без необходимости возврата к исходной конечной точке.функция.
Мне интересно, есть ли способ выполнить этот поток так же, как это было бы в Node.JS
Если это немного расплывчато, я был бы рад попытаться прояснить свой вопрос..