springfox-swagger2

时间:2021-08-20 16:02:32

简介

  • springfox是通过注解的形式自动生成API文档,利用它,可以很方便的书写restful API;

  • swagger主要用于展示springfox生成的API文档;

依赖

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

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.6.1</version>
</dependency>
  • pringfox-swagger2依赖OSA规范文档,也就是一个描述API的json文件,而这个组件的功能就是帮助我们自动生成这个json文件;

  • 我们会用到的另外一个组件springfox-swagger-ui就是将这个json文件解析出来,用一种更友好的方式呈现出来;

使用方法1,只需要一步@EnableSwagger2

@EnableSwagger2
@SpringBootApplication
public class BlogApplication {
    public static void main(String[] args) {
        SpringApplication.run(BlogApplication.class, args);
    }
}

结果是默认样式:

springfox-swagger2

使用方法2,自定义Java代码

import org.springframework.context.annotation.Bean;
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:Mr.X
 * Date:2017/10/7 16:11
 * Description:
 */
@EnableSwagger2
@Configuration
public class Swagger2Config {

    /**
     * 创建Docket
     * @return
     */
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .groupName("Blog Api")
                .select()
                .apis(RequestHandlerSelectors.basePackage("cn.mrx.browser.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    /**
     * 构建 api文档的详细信息函数
     * @return
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Bolg 博客系统API文档")
                .contact(new Contact("Mr.X", "http://www.mrx.com", "jxjy.ing@foxmail.com"))
                .version("1.0")
                .description("API 描述")
                .build();
    }
}

结果是自定义样式:

springfox-swagger2

博客参考链接
springboot从小白到大神-008程序猿的痛:写文档