Сохранение состояния в приложении, основанном на REST API
Стоит задача связать между собой несколько форм, каждая из которых делает какие-то запросу к API, представленному на бэке. REST не предполагает сохранение данных между запросами, а здесь хотелось бы через всю последовательность заполнению форм пронести некие глобальные переменные, доступные из любой формы.
Важным моментом является независимость этих данных от сессий/кук на стороне пользователя. Также необходимо реализовать историю, чтобы пользователь имел возможность в любой момент вернуться назад и поправить какие-то ранее введенные данные.
Также хотелось бы иметь в возможность обеспечить персистентность вот этого вот состояния со всеми данными, в том числе на каком шаге пользователь находится сейчас, какие данные вводил. Примеры задач такого рода: кредитный конвейер, заказ авиабилетов.
Есть какие-то решения, которые позволяют такое организовать, не изобретая велосипеда с квадратными колесами? Конкретно интересуют те, которые написаны на PHP или Node.js, дружат с их фреймворками (Express, Laravel).
Ответы (1 шт):
Вам надо использовать бины с сохранение состояния во время сессии. Например так
@Bean
@Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode =ScopedProxyMode.TARGET_CLASS)
public HelloMessageGenerator sessionScopedBean() {
return new HelloMessageGenerator();
}
подробнее про scope можно прочитать здесь https://www.baeldung.com/spring-bean-scopes#2-session-scope