Swagger的使用 附带某些异常解决 [学习]

  1. 依赖
        <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
<!-- 异常
	1. 打开报错Unable to infer base url.  
	 解决方法 在启动类加上@EnableSwagger2
	2. 清除浏览器缓存 

-->
  1. 配置类代码
import com.google.common.base.Predicates;
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.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
@Configuration 加入组件 
@EnableSwagger2 swagger2 注解
要在启动类配置 @ComponentScan(basePackages = {"com.wangan"}) 扫描这个组件

*/

@Configuration 
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket webApiConfig(){

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("包路径"))
                .paths(Predicates.not(PathSelectors.regex("/admin/.*")))
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                .build();

    }

    private ApiInfo webApiInfo(){

        return new ApiInfoBuilder()
                .title("文档标题")
                .description("文档介绍")
                .version("3.0")
//                .contact(new Contact("Helen", "http://atguigu.com", "55317332@qq.com"))
                .build();
    }
}
  1. 相关注解
@Api(description = "测试单元"):
标注Controller 用来标注该类具体实现内容 

@ApiOperation("测试方法"): 
标记方法 用于Http请求操作 

@ApiModel(value="EduSubject对象", description="课程科目"): 
标记实体类 表示对类进行说明,用于参数用实体类接收

@ApiModelProperty(value = "Id" , required = true): 
标记实体类属性 表示实体类属性定义 

@ApiParam(): 
用于方法,参数,字段说明,表示对参数的添加元数据(说明或是否必填等)

@Authorization:
声明要在资源或操作上使用的授权方案。

@AuthorizationScope:
介绍一个OAuth2授权范围。

@ResponseHeader:
响应头设置,使用方法。

版权声明:本文为weixin_43867432原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。