基本框架
基础的SSM框架,集成了shiro作为登陆验证和权限管理和swagger作为开接口文档,让后端程序员专注于业务的开发,同时shiro中集成了redis来做会话管理和权限管理,性能更优,便于分布式的开发
项目地址:ssm,如果对你有帮助,请点击一个star
1、前后端分离思想
其实前后端分离并不只是开发模式,而是web应用的一种架构模式,前后端之前使用HTTP或者其他协议进行交互请求。后端负责业务/数据接口,前端负责展现/交互逻辑,前后端开发并行且独立。
随着发展,前后端分离也不局限于web开发,越来越向一对多的方向发展。对于同一份数据接口,我们可以定制开发多个客户端,比如web和app就可以使用同一个接口,多个前端展示。
2、如何实现前后端分离
简单来说,前端使用AJAX请求后台接口,后台都数据进行处理后返回给前端,这个过程我们多半使用json格式来传递数据(也可以使用XML等),而对于前端使用Vue、React、Angular甚至Jquery都是没有关系的,同样对后端的开发语言也没有限制
3、RESTful风格
首先,REST不是休息的意思,是一种接口开发设计规范,是Representational State Transfer的缩写,其意为“表现层状态转化”,省略了主语。”表现层”其实指的是”资源”(Resources)的”表现层”。REST认为,每一个URL都是一种资源,所有的操作都是对资源的操作,而不同的操作主要使用HTTP动词来表示,我们都知道HTTP有get和post方法,并理解他们的简单区别,但是实际上,http远不止这两种,还有其他的方法:
方法 | 含义 |
---|---|
GET(SELECT) | 从服务器取出资源(一项或多项) |
POST(CREATE) | 在服务器新建一个资源 |
PUT(UPDATE) | 在服务器更新资源(客户端提供改变后的完整资源) |
DELETE(DELETE) | 从服务器删除资源 |
HEAD | 获取资源的元数据 |
OPTIONS | 获取信息,关于资源的哪些属性是客户端可以改变的 |
主要使用的前4种方法,分别对应着“查、增、改、删”。每一项都是对资源的操作。具体的详细解释可以参考阮一峰先生所讲的《理解RESTful架构》和
《RESTful API 设计指南》
下面给出一些例子:
方法 | 含义 |
---|---|
GET /zoos | 列出所有动物园 |
POST /zoos | 新建一个动物园 |
GET /zoos/ID | 获取某个指定动物园的信息 |
PUT /zoos/ID | 更新某个指定动物园的信息(提供该动物园的全部信息) |
PATCH /zoos/ID | 更新某个指定动物园的信息(提供该动物园的部分信息) |
DELETE /zoos/ID | 删除某个动物园 |
GET /zoos/ID/animals | 列出某个指定动物园的所有动物 |
DELETE /zoos/ID/animals/ID | 删除某个指定动物园的指定动物 |
下面就说一下具体的实现与配置
4、统一响应结构
使用REST框架实现前后端分离架构,我们需要首先确定返回的JSON响应结构是统一的,也就是说,每个REST请求将返回相同结构的JSON响应结构。定义一个相对通用的JSON响应结构,其中包含两部分:元数据与返回值,其中,元数据表示操作是否成功与返回值消息等,返回值对应服务端方法所返回的数据。该JSON响应结构如下:
{
"code": 200,
"message": "success",
"data": {}
}
可以在每次返回时候根据实际情况返回数据
{
"code": 200,
"message": "成功查询用户",
"data": {
"user": {
"id": 1,
"account": "test_user",
"password": "123456"
}
}
}
下面给出JAVA中的代码
public class Msg {
private int code;