当前位置: 首页 > 知识库问答 >
问题:

Swagger没有检测到带有Spring Boot的Spring Data Rest API

巫马刚洁
2023-03-14

我设置了一个Spring Boot项目,包括Spring Data 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>

这是我的霸气配置:

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }
}
spring.data.rest.base-path=/api
server.context-path=/myapp

然而:

>

  • http://localhost:8080/myapp/api中,我可以看到Spring Data Rest API的列表(Json格式),但看不到自定义的RestControllerendpoint。

    http://localhost:8080/myapp/swagger-ui.html中,我看到了一个很好的gui,它只列出了自定义的RestController和错误endpoint,而不是Spring Data Rest API。事实上,http://localhost:8080/myapp/v2/api-docs并没有引用Spring Data Restendpoint,而只引用了我的自定义RestController和错误endpoint。

    如何修复Spring Data Rest&Swagger配置?

  • 共有1个答案

    终翔
    2023-03-14

    Spring Data Rest支持仅在springfox 2.6.0版中引入。如果您在升级到springfox的最新版本(在撰写本文时为2.6.1)后按照说明进行操作,那么在呈现endpoint时应该不会有问题。

     类似资料:
    • 我对Python非常陌生,最近我一直致力于在pyplay中创建一个小型的太空入侵者风格的游戏。然而,我几乎已经到达了终点,我想让它这样,如果敌人的船(块)与我的船(玩家)相撞,碰撞被检测到,移除我的两艘船并显示一个简短的“游戏结束”信息。 到目前为止,我有探测子弹和敌舰碰撞的代码,我重写了这个代码,如果我的船和敌舰碰撞,但是这个代码只有在我不开枪的情况下才有效,我也必须从一边移动到另一边为了检测到

    • 我正在尝试在sony xperia J中调试我的android应用程序,但 我已经启用了USB调试,大容量存储,并安装了索尼pc伴侣。我也允许安装外部应用程序。我尝试启用USB教学。我遗漏了什么附加设置吗? 我想我已经为它安装了驱动程序,但我不太确定。有人能帮我吗?这真的很烦人。

    • 我使用maven enforcer插件只强制执行jdk 1.7(我使用的是java.nio.file)。出于某种原因,maven enforcer插件无法检测JDK1.7。 这是我pom.xml的密码- 这就是我得到的错误- 编辑 mvn执行者:显示信息 显示版本1.7而不是1.6。。。为什么强制检测java 1.6版?

    • 我正在自己配置Spring Boot应用程序,以运行两个数据库(两个transactionManager相同)。MariaDB和MongoDb。在@Repository中,我已经用@PersistenceContext使用了@Autowired,注释@Transactional正在正确地使用TransactionManager。但对我来说,最有用的是在@Services层上添加@Transacio

    • 我试着检测一个整音符和一个半音符,但对于半音符,我似乎检测不出来,因为它是一个镂空的圆圈。有没有办法检测出镂空的圆圈? 下面是我的代码:

    • 我在使用CPlex的LazyCallback运行库存路由问题的分支和切割时遇到了一个问题。 如果您想提交bug报告,请访问:http://bugreport.Java.com/bugreport/crash.jsp。有关报告bug的位置,请参见problematic frame。

    • 我有一个麻烦与Springfox昂首阔步2为我的API留档。它无法识别我的Rest存储库(JpaRepository/PagingAndSortingRepository)。 甚至我也尝试添加下面这样的招摇注释,但没有成功 而HAL浏览器可以识别我的Rest存储库。有人能帮我吗?这是我对pom的依赖, 这是我的靴子课, 当我添加时,在应用程序启动时出现以下错误

    • 导致问题的两个endpoint位于根路径上,并且URL中只有一个path参数。它们都在一个具有@requestmapping(“/”)的控制器中,并对它们进行注释; 这两个endpoint工作正常,只是在Swagger呈现HTML时引起了一些问题。如果我删除它们,将显示HTML。我已经尝试将它们自己移动到控制器中,看看是否可以阻止swagger在swagger配置中访问它们。但是,它们似乎只需要存