Qizonghui 2020-08-02
swagger报错No operations defined in spec! 一般有2个原因:
其中第2个path错误,path要是全匹配url,url是完整的,包含方法的url,本人因为path只写controller上的url,没写方法上的url,找了1天也没找到原因,看之前项目才发现url不是完整的url;如果不是完整的url,正则是/path/rest/pic/.*, 正则是 .*;
第1个basePackage错误,主要是扫描的包内没有controller,或者controller类上没有@Controller注解。
完整可用的配置类如下:
@Configuration @EnableSwagger2 public class Swagger2Config { @Value("${swagger.enable}") boolean swagger2enable; @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .enable(swagger2enable) .select() .apis(RequestHandlerSelectors.basePackage("com.test.controller")) .paths(doFilteringRules()) .build(); } private Predicate<String> doFilteringRules() { // return PathSelectors.any(); // return PathSelectors.regex("/report/.*"); // return Predicates.not(PathSelectors.regex("/error.*")); // return or(regex("/hello.*"), regex("/rest/adxSspFinanceManagement.*"));//success return or(regex("/rest/pic/url/query"), //此处必须为完整的url,到方法级别 regex("/rest/text/url/query/.*") //部分url的正则是 .* // regex("/api/v1/pop/bms/audit/.*") ); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Check APIs") .description(" 测试环境地址:http://10.179.88.216:8083") .termsOfServiceUrl("http://10.179.88.216:8083") .contact("开发团队") .version("1.0") .build(); } }