Swagger是一个Restful风格接口的文档在线自动生成和测试的框架
官网:http://swagger.io
官方描述:The World’s Most Popular Framework for APIs.
Swagger ui 的原生UI界面如下:
1、原生UI显示的有些不够漂亮和清晰,特别是request 的model部分
2、每个服务都需要引入一套资源文件,不能作为一个中间件为其他API使用
3、默认通用配置繁琐,每个项目都需要复制重新配置一份swagger信息
Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因:
Swagger 文档提供了一个方法,使我们可以用指定的 JSON 或者 YAML 摘要来描述你的 API,包括了比如 names、order 等 API 信息。
你可以通过一个文本编辑器来编辑 Swagger 文件,或者你也可以从你的代码注释中自动生成。各种工具都可以使用 Swagger 文件来生成互动的 API 文档。
注:注意:用 Swagger 文件生成互动的 API 文档是最精简的,它展示了资源、参数、请求、响应。但是它不会提供你的API如何工作的其他任何一个细节。
掌握微服务项目的整合使用
掌握Swagger-UI的简单使用
在https://github.com/shi469391tou/microservice-mallmanagement.git地址下载,并导入eclipse
查看项目整体结构
microservice-eureka-server(Eureka注册中心),搭建服务注册中心,子项目将通过配置注册到注册中心。
修改配置application文件如图所示:
microservice-gateway-zuul,作为其他微服务项目的API网关,实现其他微服务接口的动态代理。
配置application文件如图所示:
microservice-orderservice,主要用于商品订单管理,并提供有关订单管理的RESTFUL风格和API接口。
配置application文件如图所示:
在microservice-orderservice中写对应的控制器类:
microservice-userservice,主要用于商品用户管理,并提供有关用户管理的RESTFUL风格和API接口。
配置application文件如图所示:
在microservice-userservice中写对应的控制器类:
创建数据库,并插入数据
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项目
引入Swagger-UI
用户管理类
订单管理类
加入Swagger依赖
用户管理类
订单管理类
编写配置类
订单管理
用户管理类
整合测试
重新启动项目,通过对应服务地址IP+端口+swagger-ui.html,列出接口控制类:
接口测试
单击user-controller面板,展示接口所有方法,单击某个方法,列出详细信息
在参数信息栏,输入username的参数值shitou,单击Try it out按钮进行测试
从图中可以看出,该方法查询出了username为shitou的用户订单信息,同时还提供了curl和URL两种请求方式,如果接口方法出现变更,只需要将对应的服务重启,并刷新文档页面就会自动更新对应的方法。