微服务项目整合与测试
微服务项目整合
1. 微服务项目结构预览
2. 微服务项目功能介绍
-
microservice-eureka-server(Eurka注册中心)
该子项目使用了Spring Cloud的组件Eureka,用于搭建一个服务注册中心、microservice-gateway-zmicroseriuul、microservice-orderservice和microservice-userservice都将通过配置注册到注册中心。
配置了应用名称和服务端口,同时通过Eureka的相关配置指定了Eureka注册中心的地址为http://localhost:${server.port}/eureka/(即http://localhost:8761/euraka/),当部署到测试或线上环境时,需要根据上面注释中的提示信息进行地址修改。
-
microservice-gateway-zuul(Zuul API 网管)
该子项目使用了Spring Cloud的组件Zuul,主要作为其他微服务项目的API网关,来实现其他微服务接口的动态代理。microservice-orderservice和microservice-userservice都可以使用Zuul网关服务进行代理请求。
-
microservice-orderservice(订单管理微服务)
该子项目就是一个使用传统的Spring Boot框架开发的订单管理微服务项目,主要用于商城订单管理,并提供有关订单管理的RESTFUL风格的API接口方法。
-
microservice-uservice(用户管理微服务)
该子项目也是一个传统的Spring Boot框架开发的用户管理微服务项目,主要用于进行商场用户管理,并提供有关用户管理的RESTFIUL风格的API接口方法。
3. 数据库信息
-
创建数据库
-
插入数据
-
查询数据
4. 微服务项目的启动和测试
-
启动
先启动microservice- eureka-server项目,运行成功后在启动其他的子项目。
-
测试
(1)测试接口方法。分别通过microservice-orderservice和microservice-userservice两个微服务项目的地址来访问各自暴露的API接口方法进行测试。
(2)测试API网关服务。针对上面的microservice-orderservice和microservice-userservice两个微服务项目,可以通过Zuul组件提供的API网关进行对应的接口代理测试。
接口可视化工具-Swagger-UI
Swagger-UI可以让任何人在不实现任何逻辑的情况下,以可视化的方式和后台服务端API接口方法进行交互。Swagger-UI的配置不会污染其他业务代码,可以通过引入Swagger-UI的配置自动生成相对应的可视化接口文档,对项目中的接口进行测试。
1. 下载Swagger-UI项目
从DitHub上拉取Swagger-UI项目代码:
https://github.com/swapi/swagger-api/swagger-ui.git
2. 引入Swqgger-UI
找到本地下载好的Swqgger-UI项目,进入项目并找到 dist 目录,将整个dist 目录复制到需要使用的Swagger-UI工具项目的resource目录下。
3. 加入Swagger-UI的依赖
在microservice-userservice项目的pom文件中加入Swagger的依赖。
4. 编写配置文件
在项目中创建一个Swagger-UI的配置类SwaggerConfiguration,并在该类中修改一些默认显示的API相关信息,其中最主要的是接口路径。
5. Swagger-UI使用测试
-
整合测试
重新启动所有整合了Swagger-UI接口文档工具的微服务项目,启动成功后,通过对应“服务地址IP+端口+/swagger-ui.html” 请求路径即可进入测试页面。
-
接口测试。
先单击user-controller面板,会显示出接口中的所有方法,再单击某个具体的方法会展示出详细的信息。
在参数信息输入框中填写username的参数值shitou,然后单击 "try it out" 按钮进行测试。
总结:Swagger-UI的使用
- 下载Swagger-UI项目代码。
- 将Swagger-UI项目中的dist目录复制到需要使用Swagger-UI工具的项目的resource目录下。
- 在项目的pom文件中加入依赖。
<!-- Use Swagger UI for REST API test -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
- 在项目中创建一个Swagger-UI的配置类SwaggerConfiguration,并在该类中修改一些默认显示的API相关信息。