【发布时间】:2019-06-07 08:53:19
【问题描述】:
我是使用 Swagger UI 的 Spring Boot 新手。我只是想将我的 Rest 控制器端点配置为在 swagger UI 屏幕上显示,但它显示 No operation for specs defined。很确定,这是一个配置问题。
我试过@EnableAutoConfiguration,还是找不到控制器
SwaggerDemoApplication.java
package com.example.config;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SwaggerDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SwaggerDemoApplication.class, args);
}
}
SwaggerConfig.java
package com.example.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.RequestHandlerSelectors;
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;
@EnableSwagger2
@Configuration
public class SwaggerConfig {
@Bean
public Docket productApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.controller"))
.paths(regex("/test.*"))
.build();
}
}
TestController.java
package com.example.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.Api;
@RestController
@RequestMapping(value = "/test")
@Api(value="onlinestore", description="Operations pertaining to products in Online Store")
public class TestController {
@RequestMapping(value = "/test-swagger", method= RequestMethod.GET)
public String home() {
return "Spring is here!";
}
}
预期:休息端点 实际:规范中没有定义操作
【问题讨论】:
-
您能否将 Docket bean 更改为具有此配置的测试目的:
.apis(RequestHandlerSelectors.any()).paths(PathSelectors.any())。 -
尝试从 SwaggerConfig 中删除
.paths(regex("/test.*")) -
您的代码中是否有注释
@EnableGlobalMethodSecurity(..)来启用Spring Rest Security?如果是,那么您的问题可能与 Swagger 中的错误有关:github.com/springfox/springfox/issues/2531
标签: java rest spring-boot swagger-ui swagger-2.0