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 相关文章推荐
Java多条件判断场景中规则执行器的设计
Jun 26 Java/Android
探讨Java中的深浅拷贝问题
Jun 26 Java/Android
简单总结SpringMVC拦截器的使用方法
Jun 28 Java/Android
Java spring单点登录系统
Sep 04 Java/Android
Java数据开发辅助工具Docker与普通程序使用方法
Sep 15 Java/Android
alibaba seata服务端具体实现
Feb 24 Java/Android
Java实现二分搜索树的示例代码
Mar 17 Java/Android
关于Mybatis中SQL节点的深入解析
Mar 19 Java/Android
零基础学java之带参数以及返回值的方法
Apr 10 Java/Android
Java死锁的排查
May 11 Java/Android
springboot实现string转json json里面带数组
Jun 16 Java/Android
阿里面试Nacos配置中心交互模型是push还是pull原理解析
Jul 23 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
在数据量大(超过10万)的情况下
2007/01/15 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
php命令行用法入门实例教程
2014/10/27 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
PHP获取访问设备信息的方法示例
2019/02/20 PHP
背景图跟随鼠标移动的Mootools插件实现代码
2011/12/12 Javascript
jquery form 隐藏的input 选择
2014/04/29 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
2015/09/04 Javascript
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
Vue.js划分组件的方法
2017/10/29 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
vue-cli3 从搭建到优化的详细步骤
2019/01/20 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
详解python中asyncio模块
2018/03/03 Python
教你用Python创建微信聊天机器人
2020/03/31 Python
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
Python生成器generator用法示例
2018/08/10 Python
Python中字符串List按照长度排序
2019/07/01 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
Python字典深浅拷贝与循环方式方法详解
2020/02/09 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
Python socket服务常用操作代码实例
2020/06/22 Python
Python实现一个论文下载器的过程
2021/01/18 Python
新英格兰最大的特色礼品连锁店:The Paper Store
2018/07/23 全球购物
本科毕业生的求职信范文
2013/11/20 职场文书
村委会换届选举方案
2014/05/03 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
学习党史心得体会2016
2016/01/23 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书
员工工作失职检讨书范文!
2019/07/03 职场文书
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android