详解java如何集成swagger组件


Posted in Java/Android onJune 21, 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组件http://ip:port/doc.html
详解java如何集成swagger组件

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

Java/Android 相关文章推荐
Java Optional<Foo>转换成List<Bar>的实例方法
Jun 20 Java/Android
利用Java设置Word文本框中的文字旋转方向的实现方法
Jun 28 Java/Android
详细了解java监听器和过滤器
Jul 09 Java/Android
SpringBoot整合RabbitMQ的5种模式实战
Aug 02 Java/Android
logback如何自定义日志存储
Aug 30 Java/Android
Spring Bean是如何初始化的详解
Mar 22 Java/Android
Java 使用类型为Object的变量指向任意类型的对象
Apr 13 Java/Android
java开发双人五子棋游戏
May 06 Java/Android
Java 轮询锁使用时遇到问题
May 11 Java/Android
Spring JPA 增加字段执行异常问题及解决
Jun 10 Java/Android
Mybatis-plus配置分页插件返回统一结果集
Jun 21 Java/Android
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
java中重写父类方法加不加@Override详解
Jun 21 #Java/Android
Java并发编程之Executor接口的使用
深入理解以DEBUG方式线程的底层运行原理
浅谈什么是SpringBoot异常处理自动配置的原理
SpringAop日志找不到方法的处理
详解SpringBoot异常处理流程及原理
You might like
人大复印资料处理程序_补充篇
2006/10/09 PHP
用PHP和ACCESS写聊天室(九)
2006/10/09 PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
2013/09/30 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
php集成开发环境详解
2019/09/24 PHP
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
2014/09/23 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
js取0-9随机取4个数不重复的数字代码实例
2019/03/27 Javascript
小程序实现上下移动切换位置
2019/09/23 Javascript
[49:08]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.27
2020/12/01 DOTA
python 如何快速找出两个电子表中数据的差异
2017/05/26 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
Python返回数组/List长度的实例
2018/06/23 Python
Python 判断奇数偶数的方法
2018/12/20 Python
Python Pandas 箱线图的实现
2019/07/23 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
Python如何使用函数做字典的值
2019/11/30 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
自荐信包含哪些内容
2013/10/30 职场文书
办公室前台岗位职责范本
2013/12/10 职场文书
乌鸦喝水教学反思
2014/02/07 职场文书
党员应该树立反腐倡廉的坚定意识思想汇报
2014/09/12 职场文书
团队会宣传标语
2014/10/09 职场文书
父亲节活动总结
2015/02/12 职场文书
法律进社区活动总结
2015/05/07 职场文书
Python Django项目和应用的创建详解
2021/11/27 Python