spring boot集成swagger

来源:互联网 发布:长江证券for mac 编辑:程序博客网 时间:2024/05/24 05:41

1.首先需要在pom文件中加入

<dependency>   <groupId>io.springfox</groupId>   <artifactId>springfox-swagger2</artifactId>   <version>2.6.1</version></dependency><dependency>   <groupId>io.springfox</groupId>   <artifactId>springfox-swagger-ui</artifactId>   <version>2.6.1</version></dependency>

2.创建自己的SwaggerConfig类,在此类加上@Configuration@EnableSwagger2俩个注解,在类中创建一个返回Docket实体的bean。如下

import com.google.common.base.Predicate;import org.springframework.boot.autoconfigure.web.BasicErrorController;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.bind.annotation.RestController;import springfox.documentation.RequestHandler;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.service.ApiInfo;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;import static springfox.documentation.builders.PathSelectors.regex;@Configuration@EnableSwagger2public class SwaggerConfig {    @Bean    public Docket swagger(){        Predicate<RequestHandler> predicate = new Predicate<RequestHandler>() {            @Override            public boolean apply(RequestHandler input) {                Class<?> declaringClass = input.declaringClass();                if (declaringClass == BasicErrorController.class)// 排除                    return false;                if(declaringClass.isAnnotationPresent(RestController.class)) // 被注解的类                    return true;                if(input.isAnnotatedWith(ResponseBody.class)) // 被注解的方法                    return true;                return false;            }        };        return  new Docket(DocumentationType.SWAGGER_2)                .apiInfo(apiInfo())                .useDefaultResponseMessages(false)                .select()                .apis(predicate)                .paths(regex("/api/.*"))                .build();    }    private ApiInfo apiInfo() {        return new ApiInfoBuilder()                .title("Swagger 接口")//大标题                .version("1.0")//版本                .build();    }}
3.然后在返回的实体和controller中接口加入Swagger的注解,启动服务,在浏览器输入服务的url+/swagger-ui.html,进入swagger页面测试接口。
Swagger常用注解有
1.@ApiModel 用于注解实体类,有value description parent等属性
2.@ApiModelProperty(notes = "案件编号")用于注解实体类中的属性
3.@Api用于注解controller类 有value description等属性
4.@ApiOperation用于注解controller类中的接口方法, 有value和notes等属性
5.@ApiParam(value = "批次号") 用于注解接口方法的参数
6.@ApiImplicitParams({
        @ApiImplicitParam(name = "page", dataType = "integer", paramType = "query",                value = "页数 (0..N)"),        @ApiImplicitParam(name = "size", dataType = "integer", paramType = "query",                value = "每页大小."),        @ApiImplicitParam(name = "sort", allowMultiple = true, dataType = "string", paramType = "query",                value = "依据什么排序: 属性名(,asc|desc). ")}) 和 @ApiIgnore Pageable pageable 合用,用于注解接口方法的实体参数。

等等


0 0
原创粉丝点击