Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。
本文主要是在学习Spring Boot的过程中顺便记录下使用Spring Boot集成Swagger2的步骤 ,IDE选用IDEA。步骤如下:
-
新建Module --> Spring Initializr
Url 使用https://start.spring.io 可以帮助快速生成pom文件等
如果不使用这种方式,也可以有另外两种方式:
- 直接在官网https://start.spring.io生成 然后import到IDE里面
- 全部采用手写的方式
2.填写Maven坐标
3.选择web
4.删掉无用的 三个mvn相关的文件
代码结构如下:
5.在pom里面添加依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version></dependency><dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
6.新增SwaggerConfig配置类
/**
* Created by zhaoww on 2017/4/28.
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
/**
*
* Description: <br>
*
* @author zhao.ww <br>
* @taskId <br>
* @return <br>
*/
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
/**
*
* Description: <br>
*
* @author zhao.ww <br>
* @taskId <br>
* @return <br>
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot中使用Swagger2构建RESTful APIs")
.description("demo api")
.version("1.0")
.build();
}
}
7.新增controller TestController类。用来测试swagger
/**
* Created by zhaoww on 2017/4/28.
*/
@RestController
@RequestMapping(path = "/test")
public class TestController {
Map<String, String> users = new HashMap<String, String>(){{
put("k1","v1");
put("k2","v2");
put("k4","v3");
put("k4","v4");
}};
@RequestMapping(value = "/{userId}",method = RequestMethod.GET)
public String getUser(@PathVariable("userId") String id){
return users.get(id);
}
@RequestMapping(method = RequestMethod.POST)
public void addUser(){
users.put("k9","v9");
}
@RequestMapping(value = "/{userId}",method = RequestMethod.DELETE)
public void deleteUser(@PathVariable("userId") String id){
users.remove(id);
}
@RequestMapping(value = "/{userId}",method = RequestMethod.POST)
public void updateUser(@PathVariable("userId") String id){
users.put(id,"p1");
}
}
8.启动Spring Boot程序,访问:http://localhost:8080/swagger-ui.html
当然其中省略了对Maven生命周期相关的操作
代码地址:点击可取