Я довольно новичок в мире REST, и мы пытаемся перенести наше приложение на архитектуру REST. Мы работаем над доказательством концепции, и нам нужно найти доказательство того, что то, что мы хотим достичь, может быть выполнено с помощью REST.Поддержание потока транзакций с помощью Jersey REST
В нашей архитектуре передние экраны будут использовать Angular и будут звонить службам REST, чтобы открыть сеанс клиента и выполнить/поддерживать транзакции в течение этого сеанса и когда сеанс будет завершен, подробности сеанса (то есть все транзакции клиента в пределах клиентской сессии) будет отправлено для фиксации в БД. Мы просто хотим писать в БД после того, как клиент завершит все транзакции в течение сеанса. Другими словами, фиксация в БД происходит только после завершения сеанса.
Я надеюсь получить некоторые указания о том, как лучше всего выполнить приведенные ниже шаги в наших классах Java.
1) Браузер инициирует запрос на открытие нового сеанса клиента. Служба POST сеанса используется для генерации нового идентификатора сеанса. Идентификатор сеанса отправляется обратно в ответ на браузер.
Вопрос ->Каков наилучший способ поддерживать это значение идентификатора сеанса в моих классах Java?
2) Клиентские операции выполняются в рамках сессии. Для каждой транзакции обработанная транзакция POST-служба используется для сохранения информации о транзакции вместе с информацией о сеансе.
Вопрос ->В моих Java классов, что это лучший способ, чтобы сохранить эту информацию о транзакции, и как лучше я эту информацию о транзакциях с информацией о сессии, которая была создана с помощью информации о предыдущей сессии POST? Клиент будет поддерживать идентификатор сеанса, но на стороне службы мне нужно будет отобразить транзакцию с идентификатором сеанса, чтобы я мог отправить обратно комбинированную полезную нагрузку сеанса, которая включает информацию о сеансе и транзакцию в течение этого сеанса.
3) Клиент может выполнить еще несколько транзакций, и каждая выполненная транзакция будет запросом POST транзакции, который должен был бы ассоциироваться с идентификатором сеанса, созданным ранее. Каждая дополнительная транзакция должна быть связана с идентификатором сеанса на стороне службы, так что когда я делаю GET на идентификаторе сеанса, мне нужно получить сведения о сеансе вместе со всеми транзакциями в этом сеансе.
4) Наконец, когда сеанс завершен, информация из сеанса и полезная нагрузка сеанса на стороне обслуживания (вместе со всеми транзакциями) будут переданы БД.
Я просто ищу некоторые общие рекомендации о том, как лучше всего это сделать, используя классы Java и Джерси REST.
Любые указатели будут оценены по достоинству.
Thanks Ali.
Спасибо @Opal за то, что нашли время. У меня есть понимание, что звонки REST прибиты. То, что я искал, - это руководство по передовым методам создания и хранения полезной нагрузки для конкретного клиента. Используя пример выше, когда клиент создает корзину для покупок, службе POST необходимо создать объект, содержащий идентификатор сеанса. Последующие добавления к корзине покупок должны продолжать строить этот объект, созданный ранее в памяти. В любой момент времени, если из другого браузера я делаю GET тот же идентификатор сеанса, я хочу получить все транзакции, которые клиент добавил в корзину. –
Если я смогу помочь в дальнейшем вопросе, то нужно уточнить. – Opal
Я ищу указатели на лучших способах хранения объекта сеанса для определенной корзины покупок, которую клиент начал (после покупок в магазине POST). Я получаю кусок, где вы будете делать индивидуальный POST для каждой транзакции, добавленной в корзину. Ищете способы связать эти транзакции с идентификатором сеанса, созданным предыдущим сообщением, таким образом, что когда я делаю GET на тележках для покупок (другими словами, просматривайте корзину покупок), он должен предоставить мне содержимое корзины покупок со всеми транзакциями, которые были созданы индивидуально с использованием индивидуального REST POST. –