Java详解swagger2如何配置使用

 更新时间:2022年06月30日 09:08:52   作者:念旧、sunshine  
编写和维护接口文档是每个程序员的职责,根据Swagger2可以快速帮助我们编写最新的API接口文档,再也不用担心开会前仍忙于整理各种资料了,间接提升了团队开发的沟通效率

swagger可能会遇到的问题:

当我们的接口返回的数据太大的时候,swagger会崩溃

1、引入jar包

 <!--接口文档-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.10.5</version>
            <exclusions>
                <exclusion>
                    <groupId>io.swagger</groupId>
                    <artifactId>swagger-annotations</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.swagger</groupId>
                    <artifactId>swagger-models</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.plugin</groupId>
                    <artifactId>spring-plugin-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>1.6.0</version>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-models</artifactId>
            <version>1.6.0</version>
        </dependency>

2、启用swagger application.properties

不用了

#swagger开关
swagger.enable=true

3、配置文件

package com.zkhx.config;
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
import java.util.ArrayList;
import java.util.List;
@Configuration // 标明是配置类
@EnableSwagger2WebMvc 
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class SwaggerConfig {
    /**
     * Create rest api docket.
     *
     * @return the docket
     */
    @Bean
    public Docket createRestApi() {
        ParameterBuilder tokenPar = new ParameterBuilder();
        List<Parameter> pars = new ArrayList<>();
        //header中的token参数非必填,传空也可以
        tokenPar.name("token").description("请求接口所需Token")
                .modelRef(new ModelRef("string")).parameterType("header")
                .required(false).build();
        pars.add(tokenPar.build());
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(metaData())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.zkhx.controller"))
                .paths(PathSelectors.any())
                .build()
                .globalOperationParameters(pars);
    }
    private ApiInfo metaData() {
        return new ApiInfoBuilder()
                .title("XX服务API文档")
                .description("sun")
                .termsOfServiceUrl("")
                .version("1.0")
                .build();
    }
}

Docket(DocumentationType.SWAGGER_2)  :DocumentationType.SWAGGER_2 固定的,代swagger2
groupName("") // 如果配置多个文档的时候,那么需要配置groupName来分组标识
apiInfo(apiInfo()) // 用于生成API信息
select() // select()函数返回一个ApiSelectorBuilder实例,用来控制接口被swagger做成文档
apis(RequestHandlerSelectors.basePackage("com.example.controller")) // 用于指定扫描哪个包下的接口
paths(PathSelectors.any())// 选择所有的API,如果你想只为部分API生成文档,可以配置这里
apiInfo() :
    title("XX项目API") //  可以用来自定义API的主标题
     description("XX项目SwaggerAPI管理") // 可以用来描述整体的API
     termsOfServiceUrl("") // 用于定义服务的域名
      version("1.0") // 可以用来定义版本。

三级目录

@Api(tags = “角色管理”) // tags:你可以当作是这个组的名字。

@RestController

public class RoleController {

}

@RestController
@Slf4j
@RequestMapping("/phm/db")
@Api(tags = "数据筛查")
public class DbController {
    @Autowired
    private StatusDbService statusDbService;
    @GetMapping("/field/data")
    @ApiOperation(value = "通过时间及单元id获取数据筛查所需数据")
    public ResultMsg getFieldByUnitIdWithTime( 
    @ApiParam("结束时间") @RequestParam(value = "endTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime);
    }

访问

http://localhost:8080/doc.html

到此这篇关于Java详解swagger2如何配置使用的文章就介绍到这了,更多相关Java swagger内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot事件发布和监听详解

    SpringBoot事件发布和监听详解

    今天去官网查看spring boot资料时,在特性中看见了系统的事件及监听章节,所以下面这篇文章主要给大家介绍了关于SpringBoot事件发布和监听的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-11-11
  • Java 十大排序算法之插入排序刨析

    Java 十大排序算法之插入排序刨析

    插入排序(InsertionSort),一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增 1 的有序表
    2021-11-11
  • SpringBoot集成Druid连接池连接MySQL8.0.11

    SpringBoot集成Druid连接池连接MySQL8.0.11

    这篇博客简单介绍spring boot集成druid连接池的简单配置和注意事项,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • hadoop中实现java网络爬虫(示例讲解)

    hadoop中实现java网络爬虫(示例讲解)

    下面小编就为大家带来一篇hadoop中实现java网络爬虫(示例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • spring boot项目打包成war在tomcat运行的全步骤

    spring boot项目打包成war在tomcat运行的全步骤

    这篇文章主要给大家介绍了关于spring boot项目打包成war在tomcat运行的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • 如何基于java向mysql数据库中存取图片

    如何基于java向mysql数据库中存取图片

    这篇文章主要介绍了如何基于java向mysql数据库中存取图片,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Spring Cloud调用Ribbon的步骤

    Spring Cloud调用Ribbon的步骤

    Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。本文将讲述Spring Cloud调用Ribbon的方法
    2021-05-05
  • java学习之路_篇超好的文章

    java学习之路_篇超好的文章

    一篇超好的文章!就看你有没耐心看!java学习之路!
    2008-10-10
  • Spring Security基于自定义的认证提供器实现图形验证码流程解析

    Spring Security基于自定义的认证提供器实现图形验证码流程解析

    这篇文章主要介绍了Spring Security基于自定义的认证提供器实现图形验证码,通过本文学习下AuthenticationProvider接口的类关系图,感兴趣的朋友跟随小编一起看看吧
    2021-09-09
  • 使用IDEA搭建MyBatis环境详细过程

    使用IDEA搭建MyBatis环境详细过程

    这篇文章主要介绍了使用IDEA搭建MyBatis环境的相关知识,包括创建项目的过程及导入mybatis的核心jar包的详细说明,本文通过图文实例代码相结合给大家介绍的非常详细,需要的朋友可以参考下
    2021-05-05

最新评论