springboot之swagger2集成

N!CE波      2022-04-17     230

关键词:

一、Swagger2简单介绍

  Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档。它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,可以让我们在修改代码逻辑的同时方便的修改文档说明。另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API。

 

二、Spring Boot集成Swagger2步骤

1)引入Swagger2的Maven坐标

 <!--swagger-->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.8.0</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.8.0</version>
            </dependency>

 

2) 加入Swagger2的Java配置类

import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @author zhangboqing
 * @date 2018/8/6
 *
 * swagger2配置
 *
 * 访问地址:
 * http://localhost:8080/swagger-ui.html
 */
@Configuration
@EnableSwagger2
public class Swagger2Config {


    @Bean
    public Docket docket() {
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
                //当前包路径
                .apis(RequestHandlerSelectors.basePackage("com.zbq.springbootbase.controller"))
                .paths(PathSelectors.any()).build();

    }

    //构建api文档的详细信息函数
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                //页面标题
                .title("springboot-base-frame,使用Swagger2构建RESTful API")
                //创建人
                .contact(new Contact("张波清", "756623607@qq.com", ""))
                //版本号
                .version("1.0")
                //描述
                .description("API 描述")
                .build();


    }

}

 

3)在Controller方法上加上  @ApiOperation(value="测试", notes="这是一个简单测试方法"),再不用加任何注解。

/**
 * @author zhangboqing
 * @date 2018/9/24
 */
@RestController
public class TestController {

    @ApiOperation(value="测试", notes="这是一个简单测试方法")
    @PostMapping(value = "/test")
    public String test(@RequestHeader String myHeader,String myName) {
        System.out.println("----------->header测试");

        System.out.println(myHeader);
        System.out.println(myName);
        return myHeader;
    }

}


4)若使用了Spring Boot 的拦截器,需要过滤Swagger,确保它不被拦截

  加入如下标记为蓝色的过滤配置,就可以了

/**
 * @author zhangboqing
 * @date 2018/8/7
 *
 * 注册拦截器
 */
@Configuration
public class ApiSecurityConfig2 implements WebMvcConfigurer {



    @Bean
    LoggingInterceptor loggingInterceptor() {
        return new LoggingInterceptor();
    }

    /**
     * 拦截请求
     *
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //注册日志拦截器
        registry.addInterceptor(loggingInterceptor())
                //添加需要拦截的路径
                .addPathPatterns("/**")
                .excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**");

    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

    /**
     * 跨域配置
     *
     * @param registry
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
//        registry.addMapping("/**")
//                // TODO 这里跨域最好配置域名
//                .allowedOrigins("*")
//                .maxAge(3600)
//                .allowCredentials(true)
//                .allowedMethods("GET", "POST", "OPTIONS");
    }
}

 

 

 

三、效果展示 

启动你的项目,访问Swagger2文档地址:http://localhost:8080/swagger-ui.html


 

 

springboot集成swagger2在线文档

目录SpringBoot集成Swagger2在线文档前言集成SpringBoot登录接口文档示例代码效果注解说明总结SpringBoot集成Swagger2在线文档前言不得不说,前后端分离开发的工作方式给我们带来诸多好处,让前后端攻城狮们顺畅了不少后端给前端提... 查看详情

springboot入门:集成swagger2

本片文章是基于前一篇写的,《SpringBoot入门(六):集成treetable和zTree实现树形图》,本篇主要介绍了springboot集成swagger2。关于swagger的介绍,自行谷歌。我这里有在网上购买的相关视频资料,有需要可以呼叫我。1.引入相关依赖... 查看详情

springboot1.5.4集成swagger2构建restfulapi(十八)

上一篇博客地址:springboot1.5.4整合rabbitMQ(十七)1      SpringBoot集成Swagger2构建RESTfulAPI文档1.1 Swagger2简介Swagger2官网:http://swagger.io/由于SpringBoot能够快速开发、便捷部署等特性,相信有很大一部分SpringBoo 查看详情

springboot集成swagger2生成api接口文档(代码片段)

SpringBoot2.3.0集成Swagger2引入Swagger2相应的依赖入门示例SpringBoot2集成Swagger2后启动报错结语背景:最近在工作中发现,已经多次发现后台开发人员提供的接口协议和实际的业务代码不统一。这些现象往往都是因为开发人员在... 查看详情

springboot之swagger2

SpringBoot利用Swagger2只需配置少量的注解信息便能方便地构建强大的API文档。1、添加maven依赖 2、创建Swagger2配置类 3、在API添加文档内容 4、访问http://localhost:8080/swagger-ui.html  查看详情

springboot项目集成swagger2

一、前言现如今,前后端分离已经逐渐成为互联网项目一种标准的开发方式,前端与后端交给不同的人员开发,但是项目开发中的沟通成本也随之升高,这部分沟通成本主要在于前端开发人员与后端开发人员对WebAPI接口的沟通,... 查看详情

springboot2,gradle集成swagger2

gradle文件增加//swaggerimplementation"io.springfox:springfox-swagger2:2.9.2"implementation"io.springfox:springfox-swagger-ui:2.9.2"  添加配置类SwaggerConfigpackagecom.zuo.model.config;importorg.springframework 查看详情

springboot集成swagger2(代码片段)

先上依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><gro 查看详情

springboot集成swagger2(代码片段)

第一步:jar包的引入<!--swagger--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.6.1</version></dependency&g 查看详情

springboot集成swagger2或swagger3

swagger2的使用1.导入swagegr2和swagegr-ui的依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</vers 查看详情

springboot2系列教程|集成swagger2构建强大的restfulapi文档

...。反正我是挺闲的,所以有时间写blog。今天给你们带来SpringBoot集成Swagger2的教程。什么是Swagger2Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。为什么使用Swagger2?相信刚开始不熟悉web开发... 查看详情

springboot学习笔记:集成swagger2(代码片段)

1.添加log4j依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency> 查看详情

springboot集成swagger2(代码片段)

 1、swagger简介  Swagger是一款RESTful接口的文档在线自动生成、功能测试功能框架。一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务,加上swagger-ui,可以有很好的呈现。  当我们在后台的接口修... 查看详情

springboot集成swagger2出现api重复问题(代码片段)

今天集成swagger2出现,大量api接口重复的问题,如下图所示:每个接口有7个方法,根据排查是由于api接口没有指定特定方法导致。解决方法为@RequestMapping修改为@DeleteMapping,具体如下://删除@Request... 查看详情

企业级springboot教程springboot集成swagger2,构建优雅的restfulapi

swagger,中文“拽”的意思。它是一个功能强大的api框架,它的集成非常简单,不仅提供了在线文档的查阅,而且还提供了在线文档的测试。另外swagger很容易构建restful风格的api,简单优雅帅气,正如它的名字。一、引入依赖<depe... 查看详情

springboot集成swagger2,解决页面不显示的问题

maven<!--swagger--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.6.1</version></dependency>< 查看详情

springboot集成swagger2生成api接口文档(代码片段)

SpringBoot2.3.0集成Swagger2引入Swagger2相应的依赖入门示例SpringBoot2集成Swagger2后启动报错结语背景:最近在工作中发现,已经多次发现后台开发人员提供的接口协议和实际的业务代码不统一。这些现象往往都是因为开发人员在... 查看详情

springboot之swagger2的使用

Swagger是一组围绕OpenAPI规范构建的开源工具,可帮助设计、构建、记录和使用RESTAPI。简单说下,它的出现就是为了方便进行测试后台的restful形式的接口,实现动态的更新,当我们在后台的接口修改了后,swagger可以实现自动的更... 查看详情