我在Spring Boot中使用这样的请求构建一个非常简单的REST服务:
但是当我去 localhost:8080 / swagger-ui.html 时,我会得到一个很长的不存在的冗余端点列表,例如:
那么,如何摆脱它们?我已经找到了答案,我只知道如何将响应列表限制在特定路径,这不是我的问题。
我无法通过注释@ApiOperation(值=" 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错误的解决方案,但我不知道我是否应该关心。
答案 0 :(得分:1)
原来,我的Controller代码就是问题:
//@RequestMapping("/resource/{id}")
@RequestMapping(value = "/resource/{id}", method = RequestMethod.GET)
必须在所有地方指定@RequestMapping中的方法才能在Swagger中获取正确的端点列表,即使REST服务工作正常而有时也没有指定。
答案 1 :(得分:1)
是的,或者您使用@GetMapping(显然是GET方法)或@PostMapping用于POST,而无需指定方法。 https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/GetMapping.html