文章目录
前言
苍穹外卖介绍,前后端使用的技术,接口测试相关工具。在这部分完成了登录功能以及密码加密技术。
一、项目介绍
为餐饮行业定制的一款软件。分为管理端和用户端。
1、功能介绍
2、相关技术
2.1 前端
前端工程基于 nginx 运行
2.2 后端
分模块开发
相关实体类说明
2.3 前后端联调(Nginx)
前端发送的请求,是如何请求到后端服务的?
Nginx 反向代理技术,将前端发送的动态请求由nginx转发到后端服务器。
好处:
- 提高访问速度(在这一层可以做一个缓存,如果请求的是同样的接口地址,就不需要再请求真正的后端服务,直接在index处就将缓存数据响应给前端了)
- 进行负载均衡(项目上线后,由于访问量大,后端需要部署多态服务器构成一个集群,Nginx作为负载均衡器把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器)
- 保证后端服务安全(后端服务部署在公司内部一个局域网内,并不对外开放,通过前端不能直接请求后端,所以前端发过来的请求先请求到Nginx服务器,然后再由Nginx服务器走内网将请求转发给后端的服务)
反向代理配置 nginx.conf
server{
listen 80;
server_name localhost;
location /api/ {
proxy_pass http://localhost:8080/admin/; #反向代理
}
}
负载均衡配置 nginx.conf
upstream webservers{
server 192.168.100.128:8080;
server 192.168.100.129:8080;
}
server{
listen 80;
server_name localhost;
location /api/ {
proxy_pass http://webservers/admin/; #负载均衡
}
}
二、登录(MD5加密)
//进行md5加密,然后再进行比对password = DigestUtils.md5DigestAsHex(password.getBytes());
if (!password.equals(employee.getPassword())) { //密码错误
throw new PasswordErrorException(MessageConstant.PASSWORD_ERROR);}
三、导入接口文档(apifox)
四、Swagger
Swagger只需要按照它的规范去定义接口及接口相关的信息,就可以做到生成接口文档,以及在线接口调试页面。
官网:https://swagger.io/
1、 Knife4j
为Java MVC框架集成Swagger生成Api文档的增强解决方案。
2、 使用步骤
1、导入依赖pom.xml
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.2</version>
</dependency>
2、在配置类中加入 knife4j 相关配置(WebMvcConfiguration)
/**
* 通过knife4j生成接口文档
* @return
*/
@Bean
public Docket docket() {
ApiInfo apiInfo = new ApiInfoBuilder()
.title("苍穹外卖项目接口文档")
.version("2.0")
.description("苍穹外卖项目接口文档")
.build();
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.sky.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
3、设置静态资源映射,否则接口文档页面无法访问
/**
* 设置静态资源映射
* @param registry
*/
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
3、 使用方式
接口文档访问路径为 http://ip:port/doc.html