springboot配置swagger

  不久之前配置过swagger,因为比较顺利,懒得去记录,结果今天再配置的时候,各种坑,浪费了两个小时,牢记教训,还是记一下。

  首先说一下为什么添加swagger模块,对于api项目来说,接口的管理和测试对于使用方来说,不怎么友好;为缓解这个问题,这才有了swagger。

  接下来说一下配置步骤:

  ①、添加依赖

  

        <!-- swagger -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>
pom.xml

  ②、将swagger模块加载到spring上下文

  

 1 @Configuration
 2 @EnableSwagger2
 3 public class Swagger2Config {
 4 
 5     @Bean
 6     public Docket createRestApi() {
 7         return new Docket(DocumentationType.SWAGGER_2)
 8                 .apiInfo(apiInfo())
 9                 // select()函数返回一个ApiSelectorBuilder实例用来构建Docket
10                 .select()
11                 // Swagger会扫描该包下所有Controller定义的API,并产生文档内容
12                 .apis(RequestHandlerSelectors.basePackage("com.test.api"))
13                 // 不需要过滤接口
14                 .paths(PathSelectors.any())
15                 .build();
16     }
17 
18     /**
19      * Api的基本信息(这些基本信息会展现在文档页面中)
20      */
21     private ApiInfo apiInfo() {
22         return new ApiInfoBuilder()
23                 .title("数据API")
24                 .description("data REST API, all the applications could access the data via JSON.")
25                 .version("1.0")
26                 .build();
27     }
28 }
View Code

  ③、为swagger写一个http入口

 1 /**
 2  * swagger 入口类
 3  */
 4 @ApiIgnore
 5 @Controller
 6 @RequestMapping( "/swagger")
 7 public class SwaggerCtrl {
 8 
 9     @RequestMapping(method = RequestMethod.GET)
10     public String index(Map<String, Object> model) {
11         return "redirect:swagger-ui.html";
12     }
13 
14 }
View Code

  ④、为需要提供出去的接口配置说明

@RestController
@Api(tags = "测试查询接口")
//@CrossOrigin
@RequestMapping("/test")
public class MyTestCtrl {

    @Resource
    private TestService testService;
    
    /**
     * 功能描述:查询最新一场数据
     */
    @RequestMapping(value = "lastest", method = RequestMethod.GET)
    @ResponseBody
    @ApiOperation(value = "查询最新一条数据" ,response = Result.class)
    public Result<?> lastest() {
        return testService.lastest();
    }
    
}
View Code

 

到这里就配置完成了,springboot启动之后,访问http://localhost:8081/swagger,如果报404,找不到页面,可能是编译问题,可以尝试一下mvn clean compile。

最后放一个正常运行的截图:

 

posted @ 2018-02-01 16:31  yuzjang  阅读(326)  评论(0编辑  收藏  举报