springboot集成swagger(代码片段)

chen-xing chen-xing     2022-12-01     375

关键词:

springboot集成swagger

1、为什么需要swagger

  • 开发人员频繁的修改服务端的rest接口,而对接人员和测试人员未能在第一时间获取到最新的文档
  • 接口编写完成,需要再花一定的时间去按照模板编写接口文档费事费力,不如编写代码来的轻松
  • 如果你也有同感,那么swagger绝对是你的救星

2、swagger是什么

  • swagger是一个基于注解生成在线api文档的工具包。有了它编写好代码,接口的入参、出参、方法定义上打上指定的注解,辅以描述,那么框架会根据规范生成格式规范的api在线文档,与代码自动保持同步,所见即所得。
  • 一个在线的postman,大部分参数为你格式化好了,你只需把形参替换成实参就可以发送请求了
  • 支持导出markdown、pdf、word等第三方格式的文档
  • 自动标识最新的api,改动一目了然

3、如何集成

a、引入pom

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

        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
            <version>1.8.7</version>
        </dependency>
  • 需要说明的是这里采用的是第三方的swagger-ui,相较于官网的版本,界面更优美,体验更好。ui只是一个插件,可以无缝替换

b、代码上增加注解

入参
@Data
@ApiModel("创建流程文档")
public class AddDocModel extends ToString 
    @ApiModelProperty("文档的名称")
    @NotBlank(message = "name不能为空")
    private String name;

    @ApiModelProperty("文件的fileKey")
    @NotBlank(message = "fileKey不能为空")
    private String fileKey;

    @ApiModelProperty("文件id")
    @NotBlank(message = "fileId不能为空")
    private String fileId;

    @ApiModelProperty("是否加密")
    private Integer encryption;


出参
@ApiModel("创建文档的结果集")
@Data
public class AddDocResult extends BaseResult 
    @ApiModelProperty("文档id")
    private String docId;


方法
@Api(tags = "文档管理", description = "文档管理")
public class DocServiceImpl implements DocService 
 @ApiOperation(value = "创建文档", httpMethod = "POST")
    public AddDocResult addDoc(@RequestBody AddDocModel addDocModel) 
        //接口实现
    
  • 重要注解说明

    ApiModel 用来定义接口的出参和入参的实体类

    ApiModelProperty 定义实体类的属性值

    Api 用来定义api功能模块

    ApiOperation 定义一个具体的api

    httpMethod = "POST" 接口只生成POST请求的文档

    @RequestBody 入参采用json

c、配置swagger

@Configuration
@EnableSwagger2
public class SwaggerConfiguration extends WebMvcConfigurerAdapter 
    private final String SWAGGER_SCAN_BASE_PACKAGE = "top.zhuofan.datafly";

    /**
     * 项目里的静态资源路径指向如下
     *
     * @param registry
     */
    @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/");
        super.addResourceHandlers(registry);
    

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) 
        configurer.enable();
    


    @Bean
    public Docket createRestApi() 

        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage(SWAGGER_SCAN_BASE_PACKAGE))
                .paths(PathSelectors.any())
                .build();
    

    private ApiInfo apiInfo() 

        return new ApiInfoBuilder()
                .title("卓帆网")
                .description("datafly online doc")
                .termsOfServiceUrl("https://www.chenzhuofan.top/")
                .contact(new Contact("", "", "[email protected]"))
                .version("1.0")
                .build();
    

  • 配置的主要内容是

    • 将swagger-ui的静态页相关的资源添加到springboot可访问的路径下
    • 添加swagger的扫描包路径
    • 添加swagger的版权、开发人员的联系信息

4、效果展示

技术图片

技术图片

5、后续

更多精彩,敬请关注, 程序员导航网 https://chenzhuofan.top

springboot集成swagger2(代码片段)

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

springboot集成swagger2(代码片段)

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

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

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

springboot集成swagger2(代码片段)

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

springboot中怎么集成swagger,让你拥有属于自己的api管理器(代码片段)

springboot项目中怎么集成Swaggerswagger世界上最好的api管理工具文章目录springboot项目中怎么集成Swagger前言一、swagger是什么?1.1为什么swagger开始流行二、swagger集成在springboot1.1maven引入依赖2.2编写Controller层,测试确保运行成... 查看详情

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

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

springboot集成swagger3,spring-plugin-core提示不匹配(代码片段)

今天使用SpringBoot集成Swagger输出如下错误信息:***************************APPLICATIONFAILEDTOSTART***************************Description:Anattemptwasmadetocallthemethodorg.springframework.plugin.core.PluginRegistry. 查看详情

13.9springboot集成swagger2中遇到的问题(代码片段)

13.9SpringBoot集成Swagger2中遇到的问题我们在使用SpringBoot集成Swagger2中,访问:http://127.0.0.1:8188/swagger-ui.html问题描述可能出现两种错误:1.页面显示默认报错页面。后台报错:NohandlerfoundforGET/swagger-ui.html2.显示Swagger空... 查看详情

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

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

springboot集成swagger3(代码片段)

...版   如果有还在用2.x版本的请参考时注意区分二,SpringBoot集成swagger3pom.xml集成Swagger3依赖<!--swagger3接口文档生成器--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> &l... 查看详情

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

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

springboot集成fluentmybatis框架之完善(代码片段)

本文基于上一篇:SpringBoot集成FluentMybatis实现简单增删改查功能 SpringBoot集成FluentMyBatis框架之完善主要添加:alibabadruid数据库连接池和接口文档swagger3(pom.xml文件添加alibabdriud和swagger3依赖<!--druid数据库连接池--> <dep... 查看详情

springboot集成swagger注解使用步骤(代码片段)

Swagger一般用于测试接口使用最少实现逻辑与远程服务进行交互用于controller层与为底层编程所实现的接口类似,与Postman一样Swagger是一个规范且完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。优点:1.生产... 查看详情

springboot集成swagger注解使用步骤(代码片段)

Swagger一般用于测试接口使用最少实现逻辑与远程服务进行交互用于controller层与为底层编程所实现的接口类似,与Postman一样Swagger是一个规范且完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。优点:1.生产... 查看详情

springboot集成swagger注解使用步骤(代码片段)

Swagger一般用于测试接口使用最少实现逻辑与远程服务进行交互用于controller层与为底层编程所实现的接口类似,与Postman一样Swagger是一个规范且完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。优点:1.生产... 查看详情

springboot集成swagger3接口文档及添加authorization授权(代码片段)

swagger可以为前端提供接口文档及接口测试功能,后端集成起来很方便,对代码也没有入侵,全注解完成,非常好用。一、集成基础功能第一步、添加依赖<!--swagger3--><dependency><groupId>io.springfox</groupId... 查看详情

springboot集成接口文档,老鸟们也被打脸了!(代码片段)

之前我在SpringBoot老鸟系列中专门花了大量的篇幅详细介绍如何集成Swagger,以及如何对Swagger进行扩展让其支持接口参数分组功能。详情可见:SpringBoot如何生成接口文档,老鸟们都这么玩的!可是当我接触到另一个... 查看详情

springboot中怎么集成swagger,让你拥有属于自己的api管理器(代码片段)

springboot项目中怎么集成Swaggerswagger世界上最好的api管理工具文章目录springboot项目中怎么集成Swagger前言一、swagger是什么?1.1为什么swagger开始流行二、swagger集成在springboot1.1maven引入依赖2.2编写Controller层,测试确保运行成... 查看详情