2015-04-08 1 views
3

Я новичок в отдыхе: создаю корзину покупок, такую ​​как webservice, где пользователь должен аутентифицировать и добавлять элементы для каждого пользователя. Как реализовать это с помощью Rest. Что означает, когда они говорят, что «REST - это без гражданства» Могу ли я создать сеанс в базе данных sqlserver и вернуть его в ответ, чтобы клиент мог использовать его для последующего вызова? Рассматривает ли он масштабируемость?Состояние в Ресторане отдыха

Я видел сообщения об обслуживании состояния с сохранением состояния, и они ответили, что масштабируемость будет проблемой. Также некоторые сообщения предлагают хранить информацию в базе данных Managing state in RESTful based application Но сохранение значения в базе данных также является своего рода состоянием, так как клиент должен быть выполнен по порядку и передать некоторый токен для дальнейших вызовов. Могу ли я заключить, что отдых не применим для корзины покупок, как приложения?

+0

Возможный дубликат [SOAP или REST для веб-служб?] (Http://stackoverflow.com/questions/76595/soap-or-rest-for-web-services) –

+0

Возможно, ваша корзина не принадлежит вашей Услуги REST. Как правило, на веб-сайте вы реализуете корзину покупок в сеансе, однако есть и другие способы сделать это (например, в файлах cookie). Если вы хотите иметь корзину покупок без сеанса, вы можете реализовать репозиторий корзины покупок и действовать так, как если бы ваша корзина была сущностью вашей системы. Затем вы будете следовать принципам REST. – sturcotte06

ответ

2

Ограничение на отсутствие устаревших состояний говорит, что связь клиент-сервер должна быть без гражданства, а это означает, что каждый запрос должен содержать всю информацию, необходимую для его выполнения. В более простых выражениях это означает, что вы не можете иметь сеанс на стороне сервера, но для вас хорошо, если у вас есть сеанс на стороне клиента.

Имейте в виду, что REST является архитектурным стилем и что вы должны следовать ограничениям, чтобы использовать преимущества, связанные с этим. Если преимущества для вас не важны, лучше их игнорировать, чем использовать что-то, что не будет хорошим, просто следовать стилю. Ограничение безстоящих лиц намеревается увеличить видимость, надежность и масштабируемость. Видимость, потому что весь запрос можно понять сразу; надежность, потому что легче восстанавливать серверные сбои; и масштабируемость, потому что любой экземпляр сервера может отвечать на любые запросы. Если это не важно для вас, не стесняйтесь поддерживать сеанс на стороне сервера, если вам это проще.

+1

Означает ли это, что мы не можем наслаждаться остальным архитектурным стилем в корзине покупок, как приложение? – mictes

+0

Нет. Это просто означает, что вы не можете использовать серверные сеансы для этого. –

+1

Что бы вы сделали, чтобы сделать его полностью отдохнувшим – mictes

Смежные вопросы