Java集成swagger文档组件


Posted in Java/Android onJune 28, 2021

一:简介

  Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。

二:集成swagger

1.引入pom.xml文件包(导入4个jar包)

注意:jdk1.8以上才能运行swagger2

<!--swagger-->
	 <dependency>
	     <groupId>io.springfox</groupId>
	     <artifactId>springfox-swagger2</artifactId>
	     <version>2.8.0</version>
	 </dependency>
	 <!--swagger-ui-->
	 <dependency>
	     <groupId>io.springfox</groupId>
	     <artifactId>springfox-swagger-ui</artifactId>
	     <version>2.8.0</version>
	 </dependency>
	 <!--swagger-ui增强-->
	 <dependency>
	     <groupId>com.github.xiaoymin</groupId>
	     <artifactId>knife4j-spring-boot-starter</artifactId>
	     <version>2.0.4</version>
	 </dependency>
	 <!--swagger-xml bind-->
	 <dependency>
	     <groupId>javax.xml.bind</groupId>
	     <artifactId>jaxb-api</artifactId>
	     <version>2.3.0</version>
	 </dependency>

2.要想使用Swagger,必须编写一个配置类来配置 Swagger,这里的配置类如下

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    private String title = "标题..";
    private String description = "";
    private String termsOfServiceUrl = "";
    private String version = "版本号..";

    @Bean
    public Docket createDefaultRestApi() {
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any())
                .build().groupName("default").securitySchemes(securitySchemes()).securityContexts(securityContexts());
    }

    @Bean
    public Docket createTestRestApi() {
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.ant("/test/**")).build().groupName("测试/调试").securitySchemes(securitySchemes())
                .securityContexts(securityContexts());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title(title).description(description).termsOfServiceUrl(termsOfServiceUrl)
                .version(version).build();
    }

    private List<SecurityReference> defaultAuth() {
        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
        authorizationScopes[0] = authorizationScope;
        return newArrayList(new SecurityReference("token", authorizationScopes));
    }

    private List<SecurityContext> securityContexts() {
        return newArrayList(SecurityContext.builder().securityReferences(defaultAuth())
                .forPaths(PathSelectors.regex("^(?!auth).*$")).build());
    }

    private List<ApiKey> securitySchemes() {
        return newArrayList(new ApiKey("token", "token", "header"));
    }
}

3.集成RESTful风格接口示例

@Api(tags = "测试")
@RestController
public class TestController {

    @ApiOperation("get方法")
    @GetMapping("getInfo")
    public void getInfo(){
       
    }
}

4.控制台打印路径地址(可选配置

@Slf4j
@SpringBootApplication
public class SpringbootApplication implements ApplicationRunner {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootApplication.class, args);
    }

    @Autowired
    Environment environment;

    @Override
    public void run(ApplicationArguments args) throws Exception {
        log.info("项目已启动,端口:" + environment.getProperty("local.server.port"));
        log.info("swagger文档地址:http://localhost:" + environment.getProperty("local.server.port") + "/swagger-ui.html");
        log.info("swagger文档地址:http://localhost:" + environment.getProperty("local.server.port") + "/doc.html");
    }
}

三:配置运用swagger

1. http://ip:port/swagger-ui.html

Java集成swagger文档组件

2. http://ip:port/doc.html

Java集成swagger文档组件

到此这篇关于Java集成swagger文档组件的文章就介绍到这了,更多相关Java集成swagger内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
分析Netty直接内存原理及应用
Jun 14 Java/Android
Java基础之详解HashSet的使用方法
Jun 30 Java/Android
Sleuth+logback 设置traceid 及自定义信息方式
Jul 26 Java/Android
spring cloud 配置中心客户端启动遇到的问题
Sep 25 Java/Android
深入解读Java三大集合之map list set的用法
Nov 11 Java/Android
springboot 自定义配置 解决Boolean属性不生效
Mar 18 Java/Android
java后台调用接口及处理跨域问题的解决
Mar 24 Java/Android
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
Apr 08 Java/Android
详解Android中的TimePickerView(时间选择器)的用法
Apr 30 Java/Android
Spring IOC容器Bean的作用域及生命周期实例
May 30 Java/Android
Java实现带图形界面的聊天程序
Jun 10 Java/Android
死磕 java同步系列之synchronized解析
Jun 28 #Java/Android
利用Java设置Word文本框中的文字旋转方向的实现方法
Springboot集成阿里云OSS上传文件系统教程
简单总结SpringMVC拦截器的使用方法
SpringBoot实现异步事件驱动的方法
Jun 28 #Java/Android
Spring整合Mybatis的全过程
Jun 28 #Java/Android
Java中常用解析工具jackson及fastjson的使用
You might like
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
来自phpguru得Php Cache类源码
2010/04/15 PHP
php实现通用的信用卡验证类
2015/03/24 PHP
PHP自毁程序(慎用)
2015/07/09 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
jQuery库与其他JS库冲突的解决办法
2010/02/07 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
jQuery trigger()方法用法介绍
2015/01/13 Javascript
星期几的不同脚本写法(推荐)
2016/06/01 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
2016/07/22 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
2017/01/24 Javascript
微信小程序页面传值实例分析
2017/04/19 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
微信小程序框架的页面布局代码
2019/08/17 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
python 随机森林算法及其优化详解
2019/07/11 Python
Django的Modelforms用法简介
2019/07/27 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
套娃式文件夹如何通过Python批量处理
2020/08/23 Python
python Scrapy爬虫框架的使用
2021/01/21 Python
迪拜航空官方网站:flydubai
2017/04/20 全球购物
英国最大的化装舞会服装网站:Fancydress.com
2017/08/15 全球购物
opencv实现图像平移效果
2021/03/24 Python
成人教育自我鉴定
2013/11/01 职场文书
服务质量承诺书
2014/03/27 职场文书
初二学习计划书范文
2014/04/27 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
小学生校园广播稿
2014/09/28 职场文书
安全保证书
2015/01/16 职场文书
2015年学校管理工作总结
2015/07/20 职场文书
大学生党课心得体会
2016/01/07 职场文书