前后端分离开发
介绍
前后端分离开发,就是在项目开发过程中,对于前端代码的开发由专门的前端开发人员负责,后端代码则由后端开发人员负责,这样可以做到分工明确、各司其职,提高开发效率,前后端代码并行开发,可以加快项目开发进度。
目前,前后端分离开发方式已经被越来越多的公司所采用,成为当前项目开发的主流开发方式。
前后端分离开发后,从工程结构上也会发生变化,即前后端代码不再混合在同一个maven工程中,而是分为前端工程和后端工程。
开发流程
前后端分离开发后,面临一个问题,就是前端开发人员和后端开发人员如何进行配合来共同开发一个项目?
可以按照如下流程进行:
接口(API接口)就是一个http的请求地址,主要就是去定义:请求路径、请求方式、请求参数、响应数据等内容。
前端技术栈
开发工具
- Visual Studio Code
- hbuilder
技术框架
- nodejs
- VUE
- ElementUl
- mock
- webpack
Yapi
介绍
YApi是高效、易用、功能强大的api管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护API,YApi还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。
YApi让接口开发更简单高效,让接口的管理更具可读性、可维护性,让团队协作更合理。
源码地址:https://github.com/YMFE/yapi
要使用YApi,需要自己进行部署。
使用
使用Yapi,可以执行如下操作:
- 添加项目
- 添加分类
- 添加接口
- 编辑接口
- 查看接口
Swagger
介绍
使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,以及在线接口调试页面等等。
官网:https://swagger.io/
knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案。
<dependency> <groupld>com.github.xiaoymin</groupld> <artifactld>knife4j-spring-boot-starter</artifactld> <version>3.0.2</version> </dependency>
使用方式
操作步骤:
- 导入knife4j的maven坐标
- 导入knife4j相关配置类(在配置类中添加@EnableSwagger2 ,@EnbaleKnife4j表示开启了Swagger文档功能。再创建一个Swagger中定义的Docket对象表示描述接口文档相关信息)
- 设置静态资源,否则接口文档页面无法访问
- 在LoginCheckFilter中设置不需要处理的请求路径
常用注解
更好的完善接口文档有以下注解来更清晰的描述
项目部署
部署架构
部署环境说明
服务器:
- 192.168.138.100(服务器A)
Nginx:部署前端项目、配置反向代理
Mysql:主从复制结构中的主库
- 192.168.138.101(服务器B)
jdk:运行Java项目
git:版本控制工具
maven:项目构建工具
jar: Spring Boot项目打成jar包基于内置Tomcat运行
Mysql:主从复制结构中的从库
- 172.17.2.94(服务器C)
Redis:缓存中间件
部署前端项目
第一步:在服务器A中安装Nginx,将资料中的dist目录(即前端项目打完包的项目)上传到Nginx的html目录下
第二步:修改Nginx配置文件nginx.conf
部署后端项目
第一步:在服务器B中安装jdk、git、maven、MySQL,使用git clone命令将git远程仓库的代码克隆下来
第二步:将资料中提供的reggieStart.sh文件上传到服务器B,通过chmod命令设置执行权限
第三步:执行reggieStart.sh脚本文件,自动部署项目
在运行项目时,会存在有些图片无法加载
解决:在项目配置文件将图片搜索路劲改为linux下的指定路径,在将代码重新推送到git。将项目所需图片上传到linux指定文件夹中