Spring boot 2.1.0 -- swagger2 整合

2018-12-06 07:33:57来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

依赖版本信息
Spring boot 2.1.0.RELEASE
swagger2 2.7.0
1. mvn 配置  pom.xml 包引入
 1 <!--swagger2依赖-->
 2 <dependency>
 3 <groupId>io.springfox</groupId>
 4 <artifactId>springfox-swagger2</artifactId>
 5 <version>2.7.0</version>
 6 </dependency>
 7 <dependency>
 8 <groupId>io.springfox</groupId>
 9 <artifactId>springfox-swagger-ui</artifactId>
10 <version>2.7.0</version>
11 </dependency>
12 <!--swagger2美化插件依赖-->
13 <dependency>
14 <groupId>com.github.xiaoymin</groupId>
15 <artifactId>swagger-bootstrap-ui</artifactId>
16 <version>1.6</version>
17 </dependency>
2.配置Config
在Application.java同级目录创建 Swagger2Config.java 内容
 
package com.muyuer.springdemo;

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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class Swagger2Config {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.muyuer.springdemo.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("XX系统_接口文档")
                .description("XX系统,具体包括XXX,XXX模块...")
                .contact(new springfox.documentation.service.Contact("muyuer",  "http://www.615000.com", "182443947@qq.com"))
                .version("版本号:1.0")
                .build();
    }
}

 

3.Swagger注解
swagger通过注解表明该接口会生成文档,包括接口名、请求方法、参数、返回信息的等等。
@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiProperty:用对象接收参数时,描述对象的一个字段
@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用该注解忽略这个API
@ApiError :发生错误返回的信息
@ApiImplicitParam:一个请求参数
@ApiImplicitParams:多个请求参数

import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author  by muyuer
 * @date : 2018-11-30 14:22
 */
@Api("接口用途 XX接口")
@RestController
public class HelloController {

    @ApiOperation("描述方法用途 XX方法")
    @GetMapping("/hello")
    public String say(){
        return "Hello SpringBoot!";
    }

    @ApiOperation("描述方法用途 xx方法")
    @ApiImplicitParam(name = "name", value = "XX参数", dataType = "String")
    @GetMapping("/hello2")
    public String say2(String name){
        return name + ": Hello SpringBoot!";
    }
}

 

4.遇到的问题

开始使用其它版本swagger出现过以下错误 
{"code":404,"message":"接口 [/swagger-ui.html] 不存在"}
网上搭建答案是
添加 WebMvcConfigurer.java内容如下 
//swagger2配置
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
 
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
 
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}

自己实际测试添加了这些代码并未生效

重新建了项目引用上面版本的Spring boot 2.1.0.RELEASE swagger2 2.7.0包后即成功了。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:撩课-Java每天5道面试题第15天

下一篇:史上最全面的Spring-Boot-Cache使用与整合