gpt4 book ai didi

java - Swagger 显示不存在的端点。如何摆脱它们?

转载 作者:行者123 更新时间:2023-11-29 04:28:16 26 4
gpt4 key购买 nike

我正在 Spring Boot 中构建一个非常简单的 REST 服务,请求如下:

  • 获取/api/资源
  • POST/api/资源
  • 获取/api/资源/id
  • 删除/api/resources/id

但是当我转到 localhost:8080/swagger-ui.html 时,我会得到一长串不存在的冗余端点,例如:

  • 删除/api/资源
  • 补丁/api/资源
  • 头/api/资源
  • 选项/api/资源
  • 补丁/api/resources/id
  • 头/api/resources/id
  • 选项/api/resources/id

那么,如何摆脱它们?我一直在寻找答案,但只发现如何将响应列表限制为特定路径,这不是我的问题。

我无法通过注释 @ApiOperation(value = "xyz", hidden = true) 隐藏它们,因为这些请求不存在于我的 Controller 代码中。

这是我的 SwaggerConfig.java 类:

@Configuration
@EnableSwagger2
class SwaggerConfig {

@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.any())
.paths(regex("/api.*"))
.build();
}
}

顺便说一句,显然我在/v2/api-docs 上收到 404 错误,但我认为这不是我的问题,因为 Swagger 显示了正确的端点列表,但也显示了许多不存在的端点。虽然我还没有找到这个 404 错误的解决方案,但我不知道我是否应该关心。

最佳答案

事实证明,我的 Controller 代码是问题所在:

 //@RequestMapping("/resource/{id}")
@RequestMapping(value = "/resource/{id}", method = RequestMethod.GET)

必须在所有地方指定@RequestMapping 中的方法才能在 Swagger 中获取正确的端点列表,即使 REST 服务有时在不指定这些端点的情况下也能正常工作。

关于java - Swagger 显示不存在的端点。如何摆脱它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45141571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com