簡體   English   中英

單頁應用程序 - 前端獨立於后端?

[英]Single Page Application - Frontend independent of backend?

我做了一些研究,我注意到在很多例子中Symfony2 / AngularJS應用程序的前端和后端組合在一起; 例如,視圖使用Twig。

我一直認為可以(並且通常的做法)分別創建前端和后端,然后通過API加入它們。 在這種情況下,如果我想要更改PHP框架,我可以毫無問題地完成它,並且它足以保持API。

那么這樣做的最佳做法是什么? 如果你能向我解釋它會更好,如果你只是給我一個關於github上的好例子的鏈接,那就更好了。

我們一直在使用相同的方法開發一些項目。 不僅我認為它沒有任何“副作用”,但解決方案也非常優雅。 我們通常在Node.js中創建后端,它只是一個API服務器(不一定完全符合REST)。 然后,我們為前端創建另一個單獨的Web應用程序,完全用HTML5 / JavaScript(帶或不帶Angular.js)編寫。 API服務器永遠不會返回任何HTML,只是JSON! 甚至不是索引結構。

有很多好處:

  • 代碼非常干凈優雅。 前端和后端之間的通信遵循標准化方法。 服務器公開一些API,客戶端可以自由使用它們。
  • 它使得前端和后端的不同團隊變得更容易,並且他們可以非常自由地工作而不會相互干擾。 通常具有有限編碼技能的設計師也對此表示贊賞。
  • 前端只是一個靜態HTML5應用程序,所以它可以(我們經常這樣做)可以輕松地托管在CDN上。 這意味着您的服務器根本不必擔心靜態內容,並且減少了負載,從而節省了資金。 用戶也更快樂,因為CDN通常對他們來說非常快。

根據我們的經驗,我可以給你一些提示:

  • 最大的問題是用戶身份驗證。 它並不是特別復雜,但您可能希望使用OAuth 2.0之類的協議實現身份驗證,供內部使用。 因此,前端應用程序將充當OAuth客戶端,並從后端獲取身份驗證令牌。 您可能還需要考慮將身份驗證服務器(使用OAuth)從API服務器移到另一個單獨的資源上。
  • 如果您在不同的主機名(例如CDN)上托管webapp,您可能需要處理CORS,也許還需要JSONP。
  • 你編寫后端的語言並不重要。 我們已經在PHP(包括Laravel)中完成了這項工作,盡管我們使用Node.js獲得了最佳結果。 對於Node.js,我們在GitHub上發布了基於RestifyJS的樣板

我問你過去可能感興趣的一些問題:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM