在互联网公司, 微服务的使用者一般分为两种, 客户端和其他后端项目(包括关联微服务),不管是那方对外提供文档 让别人理解接口 都是必不可少的。传统项目中一般使用wiki或者文档, 修改繁琐,调用方不一定及时了解变化。 微服务时代,效率第一,使用Swagger可以在部署的时候生成在线文档,同时UI也特别漂亮清晰,可谓提供api之利器,Swagger 让部署管理和使用功能强大的API从未如此简单。网上Swagger文章不少, 但是少有跟SpringBoot集成,故而来一篇,造福社会.
1. pom.xml 配置
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.7</java.version>
<springfox.version>2.2.2</springfox.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox.version}</version>
</dependency>
</dependencies>
2. 创建SwaggerDemoController.java
@RestController
@RequestMapping("/user")
@EnableSwagger2
public class SwaggerDemoController {
@RequestMapping(value = "/demo2.do")
String getDemo() {
return "Hello World \n" + "Spring boot3";
}
@Bean
public Docket swaggerSpringMvcPlugin() {
ApiInfo apiInfo = new ApiInfo("sample of springboot", "sample of springboot", null, null, null, null, null);
Docket docket = new Docket(DocumentationType.SWAGGER_2).select().paths(regex("/user/.*")).build()
.apiInfo(apiInfo).useDefaultResponseMessages(false);
return docket;
}
}
3. 创建DemoApplication.java
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
4. api查看
http://localhost:8080/swagger-ui.html
2.png5. 后记
swagger 集成也是十分简单, 更多功能可以到 官网http://swagger.io/ 研究.
网友评论
文章介绍:
《Spring Boot极简教程》第14章 Spring Boot集成Swagger2构建自动化Rest API文档:
http://www.jianshu.com/p/be05aa96fd29
http://www.jianshu.com/p/8553f315b2c8