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

Swagger-UI不显示带有SpringBoot和path参数的根endpoint

万涵亮
2023-03-14

导致问题的两个endpoint位于根路径上,并且URL中只有一个path参数。它们都在一个具有@requestmapping(“/”)的控制器中,并对它们进行注释;

@PutMapping(value = "{vaultTitleId}", produces = MediaType.APPLICATION_JSON_VALUE)

@DeleteMapping(value = "{vaultTitleId}")

这两个endpoint工作正常,只是在Swagger呈现HTML时引起了一些问题。如果我删除它们,将显示HTML。我已经尝试将它们自己移动到控制器中,看看是否可以阻止swagger在swagger配置中访问它们。但是,它们似乎只需要存在于spring boot看到它们的地方,就可以阻止html显示。

任何建议都很感激。我想使用Swagger,但我现在放弃它,并寻找替代工具。

分级

compile("io.springfox:springfox-swagger2:2.9.2")
compile("io.springfox:springfox-swagger-ui:2.9.2")

昂首阔步的配置

@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors
            .basePackage("com.nextgearcapital.mt.controller"))
            .paths(PathSelectors.any())
            .build();
}
}

共有1个答案

安泰平
2023-03-14

我在附近发现了一个工作。这是在另一个论坛上提出的。

https://github.com/springfox/springfox/issues/631

问题是您的endpoint正在使用endpoint映射,您可以创建一个正则表达式来解决它吗?

@deletemapping(value=“{vaulttitleid:^((?!swagger-ui.html).)*$}”)看起来很笨拙,但不确定正确的答案是什么。

    @DeleteMapping(value = "{vaultTitleId:^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$}", produces = MediaType.APPLICATION_JSON_VALUE)
 类似资料:
  • 在一个基于NodeJS的项目中,loopback-component-explorer(2.7.0)附带的Swagger没有显示HTML页面中的“参数”,我们可以在其中为Restendpoint提供所需的params,而不管http动词(例如GET、POST和PATCH等)。必须remoteMethod(...)定义遵循一些大摇大摆的要求吗? 谢了。

  • 我有一个spring的网络应用程序,我增加了swagger和swagger-UI。我添加了一个虚拟类来测试Swagger: 构建/部署之后,我可以在swagger页面上看到虚拟类(参见附件1)。问题是,“列表操作”没有显示任何内容。原始输出如下: 我想,问题是一个缺失的标签“操作”或类似的东西……但我不确定(也不知道,如何修复这一点)。有什么建议吗?

  • 我有以下Azure函数,它是HTTP触发的。我已经使用这里的链接为我的endpoint设置了Swagger。下面的API需要一组查询字符串参数,即“name”、“email”、“phone”,因此它可以针对目标对象进行一些搜索。目前,函数的主体当然还没有实现,这对这个问题来说并不重要。 我的问题是:如何在swagger UI中显示查询字符串参数? 函数:

  • 我有一个带有标头的Spring Boot REST控制器,它可以有多个值: 并使用Springfox实现了Swagger。当我加载Swagger UI时,我只能从版本标题列表中看到并选择v1选项。如何在Swagger UI中显示所有表头值以供选择?如何更改Swagger UI列表中的默认头值?

  • 我试图塑造Swagger-UI,以便不仅修改那个“名称”字段,还修改一个应用编程接口输入参数的“描述”字段。这里有一个例子,有人似乎成功地做到了这一点,同时利用了@ApiParam和@recestParam:[链接] 到目前为止,我最接近修改描述字段的是以下内容,其中我在@recestParam输入中单独使用了"value"字段: 但是,每当我尝试在单个输入元素上同时使用@ApiParam和@Re

  • 如何配置swaggerui来为具有集合输入参数的JAX-RS资源显示正确的参数datatype? 下面是一个示例groovy JAX-RS资源。其输入类型为 在swagger UI中,我看到填充了空类型的列表,而不是。它对输出参数工作得很好。使用注释,我可以指定响应类型。