#首先從新瞭解一下Restful前端
原則條件:算法
REST 指的是一組架構約束條件和原則。知足這些約束條件和原則的應用程序或設計就是 RESTful。數據庫
Web 應用程序最重要的 REST 原則是,客戶端和服務器之間的交互在請求之間是無狀態的。從客戶端到服務器的每一個請求都必須包含理解請求所必需的信息。若是服務器在請求之間的任什麼時候間點重啓,客戶端不會獲得通知。此外,無狀態請求能夠由任何可用服務器回答,這十分適合雲計算之類的環境。客戶端能夠緩存數據以改進性能。json
在服務器端,應用程序狀態和功能能夠分爲各類資源。資源是一個有趣的概念實體,它向客戶端公開。資源的例子有:應用程序對象、數據庫記錄、算法等等。每一個資源都使用 URI (Universal Resource Identifier) 獲得一個惟一的地址。全部資源都共享統一的接口,以便在客戶端和服務器之間傳輸狀態。使用的是標準的 HTTP 方法,好比 GET、PUT、POST 和 DELETE。Hypermedia 是應用程序狀態的引擎,資源表示經過超連接互聯。後端
分層系統緩存
另外一個重要的 REST 原則是分層系統,這表示組件沒法瞭解它與之交互的中間層之外的組件。經過將系統知識限制在單個層,能夠限制整個系統的複雜性,促進了底層的獨立性。服務器
當 REST 架構的約束條件做爲一個總體應用時,將生成一個能夠擴展到大量客戶端的應用程序。它還下降了客戶端和服務器之間的交互延遲。統一界面簡化了整個系統架構,改進了子系統之間交互的可見性。REST 簡化了客戶端和服務器的實現。restful
咱們都知道Guns主要分admin、core、generator、parent、rest五大層,這五大層分別有他們的做用,這裏主要說的是rest層,在rest我將實現restful風格的先後端分離架構。架構
首先我在rest層實現對應的接口:app
注意: 我這使用了@RestController註解,意思是將全部的http請求返回的結果打包成json對象返回給前端,值得注意的是的主要參數都加了@RequestBody註解,該註解用於讀取Request請求的body部分數據,使用系統默認配置的HttpMessageConverter進行解析,而後把相應的數據綁定到要返回的對象上;再把HttpMessageConverter返回的對象數據綁定到 controller中方法的參數上。這樣作的緣由是在調用此接口時我用的是RestTemplate對象的方法,下面會介紹
在admin層調用此接口:
先建立RestTemplateProperties爲路徑設置前綴,由於前綴就是你要連接的ip和端口號:
而後在application.yml中配置路徑:
最後在admin層實現對rest層接口的調用:
注意: 這裏我使用了RestTemplate對象的postForObject方法實現對rest接口的調用,該對象的底層能夠自行研究,我也沒有進行深刻了解推薦一個挺不錯的連接講RestTemplate的請求方式: [[http://www.javashuo.com/article/p-czvxjuin-dd.html]][1] [1]: http://www.javashuo.com/article/p-czvxjuin-dd.html "Spring RestTemplate中幾種常見的請求方式"