Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 虚张声势显示不存在的端点。如何摆脱它们?_Java_Spring Boot_Swagger - Fatal编程技术网

Java 虚张声势显示不存在的端点。如何摆脱它们?

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

我正在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/资源/id
  • 选项/api/resources/id
那么,如何摆脱它们呢?我一直在寻找答案,但我只找到了如何将响应列表限制为特定路径,这不是我的问题

我不能通过annotation@ApiOperation(value=“xyz”,hidden=true)隐藏它们,因为这些请求在我的控制器代码中不存在

下面是我的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文档中遇到了404错误,但我认为这不是我的问题,因为Swagger显示了正确的端点列表,但也显示了许多不存在的端点。虽然我还没有找到404错误的解决方案,但我不知道我是否应该在意。

结果是,我的控制器代码出了问题:

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

@RequestMapping中的方法必须到处指定,才能在Swagger中获得正确的端点列表,即使REST服务有时不指定这些方法也可以正常工作。

是的,或者您使用@GetMapping(显然是get方法)或@PostMapping进行POST,并且您不需要指定方法。