Swgger2的简单使用

编写接口文档是一个非常枯燥的工作,我们采用Swagger2这套自动化文档工具来生成文档,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档。

 

1、pom.xml文件中加入Swagger2的依赖



    io.springfox
    springfox-swagger2
    2.9.2




    io.springfox
    springfox-swagger-ui
    2.9.2

2、创建Swagger2配置类

 1 package com.offcn.springbootdemo2.Config;
 2 
 3 import org.springframework.context.annotation.Bean;
 4 import org.springframework.context.annotation.Configuration;
 5 import springfox.documentation.builders.ApiInfoBuilder;
 6 import springfox.documentation.builders.PathSelectors;
 7 import springfox.documentation.builders.RequestHandlerSelectors;
 8 import springfox.documentation.service.ApiInfo;
 9 import springfox.documentation.spi.DocumentationType;
10 import springfox.documentation.spring.web.plugins.Docket;
11 import springfox.documentation.swagger2.annotations.EnableSwagger2;
12 
13 @Configuration
14 @EnableSwagger2
15 public class SwaggerConfig {
16 
17    @Bean
18    public Docket createRestApi(){
19       return new Docket(DocumentationType.SWAGGER_2)
20             .apiInfo(apiInfo())
21             .select().apis(RequestHandlerSelectors.basePackage("com.offcn.springbootdemo2.Controller"))
22             .paths(PathSelectors.any()).build();
23    }
24 
25    private ApiInfo apiInfo() {
26       return new ApiInfoBuilder().title("RestFul风格").description("一种好的习惯")
27             .termsOfServiceUrl("http://www.baidu.com").contact("java").version("1.0").build();
28    }
29 }

3、修改Controller增加文档注释

 1 package com.offcn.springbootdemo2.Controller;
 2 
 3 import com.offcn.springbootdemo2.Pojo.User;
 4 import io.swagger.annotations.ApiImplicitParam;
 5 import io.swagger.annotations.ApiImplicitParams;
 6 import io.swagger.annotations.ApiOperation;
 7 import org.springframework.web.bind.annotation.*;
 8 
 9 import java.util.ArrayList;
10 import java.util.Collections;
11 import java.util.List;
12 
13 @RestController
14 @RequestMapping("/user")
15 public class UserController {
16 
17    private List listUser= Collections.synchronizedList(new ArrayList());
18    @GetMapping("/")
19    public List getUserList(){
20       return listUser;
21    }
22 
23    /***
24     * 新增用户
25     * @param user
26     * @return
27     */
28    @PostMapping("/")
29    public String createUser(User user) {
30       listUser.add(user);
31       return "success";
32    }
33 
34    /***
35     * 获取指定id用户信息
36     * @param id
37     * @return
38     */
39    @GetMapping("/{id}")
40 
41    public User getUser(@PathVariable("id") Integer id) {
42       for (User user : listUser) {
43          if(user.getId()==id) {
44             return user;
45          }
46       }
47       return null;
48    }
49    /**
50     * 更新指定id用户信息
51     * @param id
52     * @param user
53     * @return
54     */
55    @PutMapping("/{id}")
56    @ApiOperation(value="更新指定id用户信息", notes="根据id更新用户信息")
57    @ApiImplicitParams({
58          @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long"),
59          @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User")
60    })
61    public String updateUser(@PathVariable("id") Integer id,User user) {
62       for (User user2 : listUser) {
63          if(user2.getId() == id) {
64             user2.setName(user.getName());
65             user2.setAge(user.getAge());
66          }
67       }
68       return "success";
69    }
70 
71    /***
72     * 删除指定id用户
73     * @param id
74     * @return
75     */
76    @DeleteMapping("/{id}")
77    @ApiOperation(value="删除指定id用户信息", notes="根据id删除用户信息")
78    @ApiImplicitParam(name = "id", value = "用户id", required = true, dataType = "Long")
79    public String deleteUser(@PathVariable("id") Integer id) {
80 
81       listUser.remove(getUser(id));
82       return "success";
83 
84    }
85 }

 

 

4、启动项目,在浏览器地址输入

http://localhost:8080/swagger-ui.html

查看Swagger2文档

 Swgger2的简单使用_第1张图片

 

额外添加一个依赖Lombok,可以省略实体类中繁琐的代码



    org.projectlombok
    lombok
    1.18.10
    provided

 

你可能感兴趣的:(Swgger2的简单使用)