Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swagger未使用Spring引导检测到Spring数据Rest API_Spring_Spring Boot_Swagger_Spring Data Rest - Fatal编程技术网

Swagger未使用Spring引导检测到Spring数据Rest API

Swagger未使用Spring引导检测到Spring数据Rest API,spring,spring-boot,swagger,spring-data-rest,Spring,Spring Boot,Swagger,Spring Data Rest,我设置了一个Spring启动项目,包括Spring数据Rest和Swagger: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <

我设置了一个Spring启动项目,包括Spring数据Rest和Swagger:

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.4.0</version>
</dependency>
<dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.4.0</version>
</dependency>
摘录自application.properties:

spring.data.rest.base-path=/api
server.context-path=/myapp
运行服务器时,所有rest端点都正确映射并可访问到
/myapp/api/…
,包括我自己创建的自定义RestController

然而:

  • http://localhost:8080/myapp/api
    我可以看到Spring的列表 数据Rest API(Json格式),但无法查看自定义RestController端点

  • http://localhost:8080/myapp/swagger-html
    我看到了一个不错的gui,它只列出了我的自定义RestController和错误端点,而没有列出Spring数据RESTAPI。事实上,它不引用Spring数据Rest端点,只引用我的自定义RestController和错误端点


如何修复Spring数据Rest和Swagger配置?

仅在springfox 2.6.0版中引入。如果您在升级到最新版本的springfox(撰写本文时为2.6.1)后继续操作,那么呈现端点应该不会有问题。

您是否从springfox data rest导入了配置?正如Dilip Krishnan所说,我按照说明导入了配置,并将此注释添加到我的主应用程序类中:

@Import({springfox.documentation.spring.data.rest.configuration.SpringDataRestConfiguration.class})

希望有帮助

升级至swagger的最新版本

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.7.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-data-rest</artifactId>
        <version>2.7.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.7.0</version>
    </dependency>

对于spring boot 2,您需要使用
springfox 3.0
。不幸的是,在撰写本文时,该版本尚未发布,但您可以使用快照版本

<repositories>
    <repository>
      <id>jcenter-snapshots</id>
      <name>jcenter</name>
      <url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
    </repository>
</repositories>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>3.0.0-SNAPSHOT</version>
</dependency>

谢谢我将我的版本升级到2.6.1,并添加了Maven依赖项(如说明所示),但我一直处于相同的情况。添加:
.pathMapping(“/myapp”)
.build()之后。
嘿,它应该放在哪里?什么文件?@LuizMitidiero您可以将其添加到主应用程序类或SwaggerConfig类。
@Import(SpringDataRestConfiguration.class)
为我完成了这项任务。我把它放在
应用程序
类中。谢谢
@Import(SpringDataRestConfiguration.class)
<repositories>
    <repository>
      <id>jcenter-snapshots</id>
      <name>jcenter</name>
      <url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
    </repository>
</repositories>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>3.0.0-SNAPSHOT</version>
</dependency>
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.data.rest.configuration.SpringDataRestConfiguration;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;

@Configuration
@EnableSwagger2WebMvc
@Import(SpringDataRestConfiguration.class)

public class SwaggerConfig {
  @Bean
  public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
        .select()
        .apis(RequestHandlerSelectors.any())
        .paths(PathSelectors.any())
        .build();
  }
}