2016-01-21 79 views
-1

我打算在REST API上構建Web應用程序。我一直在考慮2種不同的方式來編寫用於控制視圖,用戶會話管理等的Web UI層。在Java Stack上使用REST的Web應用程序體系結構設計

一種方式:只需使用Angular或類似框架在JavaScript中編寫所有內容。但是,我在這裏看到的問題是用戶會話管理,並且將所有內容公開給客戶端可能不是個好主意。我想任何人都有很好的網頁設計知識,可以找出JavaScript的邏輯和端點。

第二種方式:在REST上編寫一個瘦控制器和用戶會話管理層,可能是Spring web mvc項目/節點JS等,並從那裏控制所有內容。但是,我在這裏看到的問題是,我們必須在這裏有一些終點查找邏輯,以將web ui請求映射到REST終點。每次我們添加更多端點時,我們也必須維護該目錄。此外,JSON會經歷許多轉換,並可能會增加一些開銷。

任何人都可以提出一些架構的想法嗎?我在這裏錯過了什麼嗎?我們可以在REST上編寫安全的Javascript Web UI層嗎?

我也在考慮讓像RabbitMQ這樣的Message broker來縮放它。任何建議表示讚賞。

在此先感謝。

+0

您的第一個建議非常好的文章:http://billpatrianakos.me/blog/2013/09/12/securing-api-keys-in-a-client-side-javascript-app/ –

+0

感謝您的評論和分享文章。這就像獲取OAuth令牌和保護資源一樣。如果我們必須維護與會話相關的數據,那應該是redis類的存儲嗎? – Madhu

回答

0

您應該先決定如何分配客戶端和服務器之間的責任。你想要服務器做什麼,你想讓客戶做什麼?您已經發現服務器應該隱藏敏感信息,以確保應用程序的安全。你還有什麼需要從服務器?如果有數據庫,您可能還想讓服務器處理對數據庫的所有訪問。

請注意,還有其他替代方法,例如Firebase,他們會爲您處理後端,並且主要關注前端。可以爲您節省大量的身份驗證和數據訪問工作。

你還需要考慮他們將使用什麼樣的溝通風格?如果是Request-Response,那麼REST是合適的。如果它是某種雙向消息,例如聊天,我建議看看Meteor。在Meteor中,您使用JavaScript編寫前端,後端和移動設備。

你提到你擔心必須經常轉換你的Jsons。如果你使用NodeJS做你的服務器端,這個問題就會消失。它是服務器端的Javascript。

有很多方法來實現應用程序。您可以更具體地瞭解您正在嘗試做什麼,然後我們可能會推薦更適合您的框架。

+0

感謝您的建議。它給了我一些想法來思考。非常感謝你。我想要做的是爲Web和移動設備建立一個通用的後端服務器基礎架構。 – Madhu

+0

您能描述一下您正在構建的應用程序嗎?您在這裏提供的更多細節,您將在架構和框架選擇方面獲得更好的建議。 –

相關問題