详解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 相关文章推荐
为什么在foreach循环中JAVA集合不能添加或删除元素
Jun 11 Java/Android
SpringBoot2 参数管理实践之入参出参与校验的方式
Jun 16 Java/Android
简单总结SpringMVC拦截器的使用方法
Jun 28 Java/Android
浅谈自定义校验注解ConstraintValidator
Jun 30 Java/Android
HashMap实现保存两个key相同的数据
Jun 30 Java/Android
SpringBoot工程下使用OpenFeign的坑及解决
Jul 02 Java/Android
SpringBoot实现quartz定时任务可视化管理功能
Aug 30 Java/Android
Java spring定时任务详解
Oct 05 Java/Android
Java Spring 控制反转(IOC)容器详解
Oct 05 Java/Android
Java 深入探究讲解简单工厂模式
Apr 07 Java/Android
SpringCloud Function SpEL注入漏洞分析及环境搭建
Apr 08 Java/Android
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
Jul 15 Java/Android
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
java中重写父类方法加不加@Override详解
Jun 21 #Java/Android
Java并发编程之Executor接口的使用
深入理解以DEBUG方式线程的底层运行原理
浅谈什么是SpringBoot异常处理自动配置的原理
SpringAop日志找不到方法的处理
详解SpringBoot异常处理流程及原理
You might like
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
Smarty+QUICKFORM小小演示
2007/02/25 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
JavaScript中document对象使用详解
2015/01/06 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
基于javascript实现的快速排序
2016/12/02 Javascript
security.js实现的RSA加密功能示例
2018/06/06 Javascript
JSON生成Form表单的方法示例
2018/11/21 Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
numpy中矩阵合并的实例
2018/06/15 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
html svg生成环形进度条的实现方法
2019/09/23 HTML / CSS
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
造型师求职自荐信
2013/09/27 职场文书
营业员个人总结的自我评价
2013/10/25 职场文书
个人实用的自我评价范文
2013/11/23 职场文书
个人自荐信
2013/12/05 职场文书
小学生读书感言
2014/02/12 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书
2015小学毕业班工作总结
2015/07/21 职场文书
2016年幼儿园教研活动总结
2016/04/05 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书