Один из основных принципов останова - не поддерживать состояние на сервере или не сообщать без него. Я хочу посмотреть, как этот принцип работает в корзине покупок? Итак, скажите, добавляет ли пользователь товары в корзину с торгового сайта. На мой взгляд, у сервера будет некоторая реализация, чтобы иметь корзину покупок в области сеанса, и пользователь отправит сообщение для добавления продукта в корзину покупок. Для примера/shoppingcart/products/1. Теперь продукты остаются добавленными в корзину покупок (но не сохраняются в базе данных), пока пользователь не подтвердит оформление заказа. Во время подтверждения выезда элементы корзины сохраняются в базе данных на стороне сервера.Относительно принципа «Общайтесь без гражданства»
Этот подход (сдача предмета в корзину покупок на стороне сервера, который находится в области сеанса) нарушает принцип покоя? Если да, то как мы можем реализовать добавление продукта в корзину покупок, соблюдая принцип «без гражданства»?
Пользователи редко, если вообще когда-либо, взаимодействуют напрямую с услугой REST. Обычно есть некоторый промежуточный код (будь то JS в браузере, толстый клиент, веб-сайт без REST или даже код без REST, размещенный на одном и том же веб-сайте). Нечего сказать, что * этот * код должен быть без гражданства. –
Извините, что мне нужно знать для реализации на стороне сервера. Да, я согласен, что пользователь не будет напрямую взаимодействовать с сервисом отдыха, но будет взаимодействовать с некоторыми js или с другим механизмом, который внутренне будет использовать остальные uri для выполнения действия. –
Вопреки тому, что говорит Дамиен, пользователи * делают * напрямую взаимодействуют с службами RESTful, они просто неотличимы на стороне клиента от не-RESTful, и часто пользователь не знает! Любая система корзины покупок, в которой каждая корзина имеет свой собственный URL, может быть спроектирована с учетом REST, даже если этот URL доступен только пользователю, который ее создал. Часть из них на самом деле будет RESTful. –