Java 虚张声势显示不存在的端点。如何摆脱它们?
我正在Spring Boot中构建一个非常简单的REST服务,请求如下:Java 虚张声势显示不存在的端点。如何摆脱它们?,java,spring-boot,swagger,Java,Spring Boot,Swagger,我正在Spring Boot中构建一个非常简单的REST服务,请求如下: 获取/api/resources POST/api/资源 获取/api/resources/id 删除/api/resources/id 但是,当我转到localhost:8080/swagger ui.html时,我会看到一长串不存在的冗余端点,例如: 删除/api/resources 补丁/api/资源 主管/空气污染指数/资源 选项/api/资源 修补程序/api/resources/id 头/api/资源/i
- 获取/api/resources
- POST/api/资源
- 获取/api/resources/id
- 删除/api/resources/id
- 删除/api/resources
- 补丁/api/资源
- 主管/空气污染指数/资源
- 选项/api/资源
- 修补程序/api/resources/id
- 头/api/资源/id
- 选项/api/resources/id
@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文档中遇到了404错误,但我认为这不是我的问题,因为Swagger显示了正确的端点列表,但也显示了许多不存在的端点。虽然我还没有找到404错误的解决方案,但我不知道我是否应该在意。结果是,我的控制器代码出了问题:
//@RequestMapping("/resource/{id}")
@RequestMapping(value = "/resource/{id}", method = RequestMethod.GET)
@RequestMapping中的方法必须到处指定,才能在Swagger中获得正确的端点列表,即使REST服务有时不指定这些方法也可以正常工作。是的,或者您使用@GetMapping(显然是get方法)或@PostMapping进行POST,并且您不需要指定方法。