多平台统一管理软件接口,如何实现多平台统一管理软件接口
298
2022-08-03
实战分布式医疗挂号系统之整合Swagger2到通用模块
目录文章导读通用模块整合swagger2步骤1.引入swagger依赖2.配置Swagger23.启动类添加包扫描测试swagger常用注解
文章导读
本系列文章介绍从0开始搭建一个基于分布式的医疗挂号系统。本次四篇文章完成了医院设置微服务模块的后端接口,为了方便开发,对接口的返回结果、全局异常、全局日志进行了统一处理。 同时,为了方便进行访问测试,还整合了Swagger2工具,这些通用的模块中,除了全局日志被放在医院设置微服务模块的配置资源中,其余都统一被抽取在common模块中。具体实现可参考下面文章:
医院设置微服务 | 模块搭建
医院设置微服务 | 接口开发
通用模块 | 统一返回结果、统一异常处理、统一日志处理
项目已开源至 https://github.com/Guoqianliang/yygh_parent
在使用REST风格进行接口的开发测试时,post请求无法使用浏览器直接进行访问测试,目前流行的解决方案是使用Swagger2。Swagger2是一个API接口文档,通过Swagger2可以方便各种提交方式的接口测试。
通过Swagger2,我们可以看到接口名称、请求方法、传递参数、返回信息等。
通用模块整合swagger2步骤
本项目中,众多的微服务都需要整合Swagger2,所以我将其依赖引入在了通用的common父模块中,配置在common_util模块中。
1.引入swagger依赖
2.配置Swagger2
如下的Swagger2配置信息中分别创建了webApi分组和adminApi分组的Bean。
/**
* Swagger2配置信息
*/
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket webApiConfig() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("webApi")
.apiInfo(webApiInfo())
.select()
//只显示api路径下的页面
.paths(Predicates.and(PathSelectors.regex("/api/.*")))
.build();
}
@Bean
public Docket adminApiConfig() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("adminApi")
.apiInfo(adminApiInfo())
.select()
//只显示admin路径下的页面
.paths(Predicates.and(PathSelectors.regex("/admin/.*")))
.build();
}
private ApiInfo webApiInfo() {
return new ApiInfoBuilder()
.title("网站-API文档")
.description("本文档描述了网站微服务接口定义")
.version("1.0")
.contact(newhttp:// Contact("gql", "http://gql.com", "guoqianliang@foxmail.com"))
.build();
}
private ApiInfo adminApiInfo() {
return new ApiInfoBuilder()
.title("后台管理系统-API文档")
.description("本文档描述了后台管理系统微服务接口定义")
.version("1.0")
.contact(new Contact("gql", "http://gql.com", "guoqianliang@foxmail.com"))
.build();
}
}
3.启动类添加包扫描
Swagger2的配置类写好了,现在需要在service_host模块使用配置类。由于二者不在同一个项目中,所以需要在service_host模块的父模块的pom中引入service_util。
而两者包名不同,还需要额外在启动类上添加包扫描。
测试
项目启动后访问:http://localhost:8201/swagger-ui.html ,可以看到项目中接口的信息:
在Controller中添加下面几个简单的Api注解,可以将swagger中的一些信息定义为中文:
如果需要测试接口,我们只需要点击接口下方的Try it out 按钮:
点击按钮后即可,看到接口的一系列返回信息:
swagger常用注解
注解说明@Api修饰整个类,描述Controller的作用@ApiOperation描述一个类的一个方法,或者说一个接口@ApiParam单个参数描述@ApiModel用对象来接收参数@ApiModelProperty用对象接收参数时,描述对象的一个字段@ApiImplicitParam一个请求参数@ApiImplicitParams多个请求参数
以上就是实战分布式医疗挂号系统之整合Swagger2到通用模块的详细内容,更多关于分布式医疗挂号整合Swagger2模块的资料请关注我们其它相关文章!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~