知识储备:
1.Swagger ui 封装
Swagger是一个Restful风格接口的文档在线自动生成和测试的框架
官网:http://swagger.io
官方描述:The World’s Most Popular Framework for APIs.
Swagger ui 的原生UI界面如下:
2.现在市面上的UI不足之处
1、原生UI显示的有些不够漂亮和清晰,特别是request 的model部分
2、每个服务都需要引入一套资源文件,不能作为一个中间件为其他API使用
3、默认通用配置繁琐,每个项目都需要复制重新配置一份swagger信息
3.关于Swagger
Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因:
- Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。
- Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。
- Swagger 文件可以在许多不同的平台上从代码注释中自动生成。
- Swagger 有一个强大的社区,里面有许多强悍的贡献者。
Swagger 文档提供了一个方法,使我们可以用指定的 JSON 或者 YAML 摘要来描述你的 API,包括了比如 names、order 等 API 信息。
你可以通过一个文本编辑器来编辑 Swagger 文件,或者你也可以从你的代码注释中自动生成。各种工具都可以使用 Swagger 文件来生成互动的 API 文档。
注:注意:用 Swagger 文件生成互动的 API 文档是最精简的,它展示了资源、参数、请求、响应。但是它不会提供你的API如何工作的其他任何一个细节。
实验目标
掌握微服务项目的整合使用
掌握Swagger-UI的简单使用
实验步骤
项目一、微服务项目整合
1.微服务项目预览
在https://github.com/shi469391tou/microservice-mallmanagement.git地址下载,并导入eclipse
查看项目整体结构
2.微服务项目功能介绍
microservice-eureka-server(Eureka注册中心),搭建服务注册中心,子项目将通过配置注册到注册中心。
修改配置application文件如图所示:
microservice-gateway-zuul,作为其他微服务项目的API网关,实现其他微服务接口的动态代理。
配置application文件如图所示:
microservice-orderservice,主要用于商品订单管理,并提供有关订单管理的RESTFUL风格和API接口。
配置application文件如图所示:
在microservice-orderservice中写对应的控制器类:
microservice-userservice,主要用于商品用户管理,并提供有关用户管理的RESTFUL风格和API接口。
配置application文件如图所示:
在microservice-userservice中写对应的控制器类:
3.微服务项目启动与测试
创建数据库,并插入数据
CREATE DATABASE microservice_mallmanagement;
USE microservice_mallmanagement;
DROP TABLE IF EXISTS `tb_order`;
CREATE TABLE `tb_order` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`createtime` datetime DEFAULT NULL,
`number` varchar(255) DEFAULT NULL,
`userid` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=UTF8;
INSERT INTO `tb_order` VALUES ('1', '2017-10-09 10:15:44', '201709181459001', '1');
INSERT INTO `tb_order` VALUES ('2', '2017-10-24 18:22:12', '201709181459008', '1');
DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`address` varchar(255) DEFAULT NULL,
`username` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=UTF8;
INSERT INTO `tb_user` VALUES ('1', 'beijing', 'shitou');
查看订单表
查看用户表
启动项目并运行成功后,通过地址http://localhost:8761,访问注册中心
测试接口方法
http://localhost:7900/order/findOrders/1
http://localhost:8030/user/findOrders/shitou
测试API网关服务
http://localhost:8050/order-service/order/findOrders/1
http://localhost:8050/user-service/findOrders/shitou
项目二、接口可视化工具-Swagger-UI
1. Swagger-UI使用方法
下载Swagger-UI项目
引入Swagger-UI
用户管理类
订单管理类
加入Swagger依赖
用户管理类
订单管理类
编写配置类
订单管理
用户管理类
2.Swagger-UI使用测试
整合测试
重新启动项目,通过对应服务地址IP+端口+swagger-ui.html,列出接口控制类:
接口测试
单击user-controller面板,展示接口所有方法,单击某个方法,列出详细信息
在参数信息栏,输入username的参数值shitou,单击Try it out按钮进行测试
从图中可以看出,该方法查询出了username为shitou的用户订单信息,同时还提供了curl和URL两种请求方式,如果接口方法出现变更,只需要将对应的服务重启,并刷新文档页面就会自动更新对应的方法。