2016-01-21 4 views
-1

Я планирую создать веб-приложение поверх REST api. Я подумывал о двух разных способах написания слоя веб-интерфейса для управления представлениями, управления сеансом пользователя и т. Д.Архитектура веб-приложения с REST на Java Stack

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

второй способ: написать тонкий контроллер и уровень управления сеансом пользователя в REST in может быть проектом веб-проекта Spring/mvc/Node JS и т. Д. И управлять всем оттуда. Но, проблемы, которые я вижу здесь, мы должны иметь некоторую логику поиска конечной точки здесь, чтобы сопоставить запрос веб-пользователя к конечной точке REST. Каждый раз мы добавляем больше конечных точек, мы также должны поддерживать этот каталог. Кроме того, JSON пройдут множество преобразований и могут добавить некоторые накладные расходы.

Может кто-нибудь предложить некоторые идеи архитектуры для этого? Я что-то пропустил? Можем ли мы написать безопасный Javascript web ui layer на REST?

Я также думал о том, что Message Broker похож на RabbitMQ, чтобы масштабировать его. Любые предложения приветствуются.

Заранее спасибо.

+0

Очень хорошая статья для вашего первого предложения: http://billpatrianakos.me/blog/2013/09/12/securing-api-keys-in-a-client-side-javascript-app/ –

+0

Спасибо за комментировать и делиться статьей. Это похоже на получение маркера OAuth и защиту ресурсов. если, если нам нужно поддерживать данные, связанные с сессией, должно ли это быть в магазине? – Madhu

ответ

0

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

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

Вам также нужно подумать, какой стиль общения они будут использовать? Если это Request-Response, то REST подходит. Если это какой-то двунаправленный обмен сообщениями, такой как чат, я рекомендую взглянуть на Meteor. В Meteor вы пишете в Javascript для интерфейсных, back-end и мобильных.

Вы упомянули, что вы обеспокоены тем, что часто меняете свои Jsons. Если вы используете сервер NodeJS, эта проблема исчезает. Это Javascript на стороне сервера.

Существует множество способов реализации приложения. Вы можете больше узнать о том, что вы пытаетесь сделать, а затем мы можем рекомендовать рамки, которые лучше для вас.

+0

Спасибо за предложения. Это заставило меня подумать. Большое спасибо. То, что я пытаюсь сделать, - создать общую серверную инфраструктуру сервера как для Интернета, так и для мобильных устройств. – Madhu

+0

Можете ли вы описать приложение, которое вы создаете? Чем больше информации вы предоставляете здесь, тем лучше рекомендации, которые вы получите по архитектуре и выбору фреймворков. –