使用Restful、Guns、SpringBoot实现先后端分离

#首先从新了解一下Restful前端

REST 是面向资源的,强调描述应用程序的事物和名词

原则条件:算法

REST 指的是一组架构约束条件和原则。知足这些约束条件和原则的应用程序或设计就是 RESTful。数据库

Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每一个请求都必须包含理解请求所必需的信息。若是服务器在请求之间的任什么时候间点重启,客户端不会获得通知。此外,无状态请求能够由任何可用服务器回答,这十分适合云计算之类的环境。客户端能够缓存数据以改进性能。json

在服务器端,应用程序状态和功能能够分为各类资源。资源是一个有趣的概念实体,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等等。每一个资源都使用 URI (Universal Resource Identifier) 获得一个惟一的地址。全部资源都共享统一的接口,以便在客户端和服务器之间传输状态。使用的是标准的 HTTP 方法,好比 GET、PUT、POST 和 DELETE。Hypermedia 是应用程序状态的引擎,资源表示经过超连接互联。后端

分层系统缓存

另外一个重要的 REST 原则是分层系统,这表示组件没法了解它与之交互的中间层之外的组件。经过将系统知识限制在单个层,能够限制整个系统的复杂性,促进了底层的独立性。服务器

当 REST 架构的约束条件做为一个总体应用时,将生成一个能够扩展到大量客户端的应用程序。它还下降了客户端和服务器之间的交互延迟。统一界面简化了整个系统架构,改进了子系统之间交互的可见性。REST 简化了客户端和服务器的实现。restful

在Guns中实现先后端分离

咱们都知道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中几种常见的请求方式"

相关文章
相关标签/搜索