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实战之用Swing实现通讯录管理系统
Jun 13 Java/Android
SpringCloud的JPA连接PostgreSql的教程
Jun 26 Java/Android
spring boot项目application.properties文件存放及使用介绍
Jun 30 Java/Android
dubbo服务整合zipkin详解
Jul 26 Java/Android
SpringBoot整合阿里云视频点播的过程详解
Dec 06 Java/Android
maven依赖的version声明控制方式
Jan 18 Java/Android
解析探秘fescar分布式事务实现原理
Feb 28 Java/Android
java后台调用接口及处理跨域问题的解决
Mar 24 Java/Android
springboot入门 之profile设置方式
Apr 04 Java/Android
Java由浅入深通关抽象类与接口(上篇)
Apr 26 Java/Android
Mybatis-plus配置分页插件返回统一结果集
Jun 21 Java/Android
SpringBoot详解执行过程
Jul 15 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
hadoop常见错误以及处理方法详解
2013/06/19 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
javascript学习网址备忘
2007/05/29 Javascript
Javascript倒计时代码
2010/08/12 Javascript
js列举css中所有图标的实现代码
2011/07/04 Javascript
jQuery获得指定元素坐标的方法
2015/04/14 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
JavaScript的代码编写格式规范指南
2015/12/07 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
[52:09]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第二场
2014/05/26 DOTA
python和shell变量互相传递的几种方法
2013/11/20 Python
Python使用MYSQLDB实现从数据库中导出XML文件的方法
2015/05/11 Python
python中argparse模块用法实例详解
2015/06/03 Python
Python2.7编程中SQLite3基本操作方法示例
2017/08/09 Python
Django模板Templates使用方法详解
2019/07/19 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
python解压zip包中文乱码解决方法
2020/11/27 Python
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
Unineed旗下时尚轻奢网站:FABHunt
2019/05/13 全球购物
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
公务员的自我鉴定
2013/10/26 职场文书
汽车运用工程毕业生自荐信
2013/10/29 职场文书
幼儿园师德演讲稿
2014/05/06 职场文书
安全生产工作汇报
2014/10/28 职场文书
作文批改评语
2014/12/25 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
运动会800米赞词
2015/07/22 职场文书
儿子满月酒致辞
2015/07/29 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
《西门豹》教学反思
2016/02/23 职场文书
SQL基础的查询语句
2021/11/11 MySQL