简介
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);
}
}
结果是默认样式:
使用方法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();
}
}
结果是自定义样式: