Мне нужен какой-то веб-сервис с отслеживанием состояния (скажем, бронирование билетов за 5 шагов 1) выберите... 5) заплатить) и хочу реализовать его с помощью среды Spring (загрузки)
гуглить
весенний веб-сервис
можно найти множество примеров веб-сервисов RESTful... но согласно манифесту REST и многим статьям/ответам (т.е. Закрепленный сеанс для вызовов Rest API)
Клиент REST предназначен для вызова REST API, а REST API должны быть без состояния.
Statefulness вредит масштабируемости
Очень легко создать веб-службу RESTful при весенней загрузке из-за отличных встроенных и автоматически настроенных библиотек, и я не хочу отказываться от нее.
Итак, я вижу несколько способов преодолеть это:
- Создайте веб-службу RESTful в Spring Boot и добавьте к ней сеанс и сохраните на нем состояние, а также добавьте балансировщик нагрузки липкого сеанса для поддержания масштабируемости (это сложнее, чем подход без сохранения состояния, но выполнимый). Да, это не будет настоящим сервисом RESTful, но он будет работать.
- Создайте настоящую службу RESTful без сохранения состояния, сохраните состояние на уровне
временная таблица базы данных temp_transaction, к которой ваш код может обратиться, чтобы определить, находится ли пользователь в процессе бронирования, скажем, определенного места.
- состояние поддерживается на стороне клиента, а не на сервере. Итак, один из способов, который я предлагаю, заключается в том, что вы можете использовать файлы cookie для хранения вашего состояния и временных данных.
- Используйте какую-нибудь богатую инфраструктуру на стороне клиента, такую как angular или react (я не очень хорош в этом, но считаю, что в этих фреймворках есть возможность сохранить состояние), хотя я думаю, что в любом случае файл cookie используется для этой цели, так что это почти то же самое, что и 3)
- Используйте Spring + SOAP. Мыло может поддерживать состояние, но я думаю, что этот способ устарел, и современные недавно созданные приложения с нуля не должны использовать SOAP.
- Не используйте Spring Framework для этого проекта, но используйте Front end framework (упомянутый в 4) + Node.js (в любом случае он будет с отслеживанием состояния)
Так какой подход лучше выбрать?