如何使用 Jersey 禁用 OpenAPI 规范中的 /application.wadl

问题描述 投票:0回答:2

设置

我使用 Initializr 中的 Spring Boot 应用程序,其中包含 Jersey 依赖项,并添加

io.swagger.core.v3:swagger-jaxrs2:2.1.13
作为附加依赖项。然后我创建以下 ResourceConfig(为简洁起见,省略了注册其他资源类):

@Component
public class JerseyConfig extends ResourceConfig {
    public JerseyConfig() {
        this.registerClasses(
                OpenApiResource.class
        );
    }
}

当我启动应用程序并查看 http://localhost:8080/openapi.json 生成的 API 规范时,我发现了两条路径:

  • GET /application.wadl/{path}
  • GET /application.wadl

在 Swagger UI 中,它看起来像这样:

当我向 WADL 端点发送请求时,我在此设置中收到 404 响应。我已经尝试使用此行禁用 WADL 功能,但规范仍然包含两个路径:

this.property(ServerProperties.WADL_FEATURE_DISABLE, true);

问题

如何正确禁用或隐藏 OpenAPI 规范中的这两个路径?

spring-boot jersey swagger openapi
2个回答
0
投票

也许你可以尝试

packages-to-scan
财产

springdoc:
   packages-to-scan:
    - com.myapp.appName.controller

0
投票

spring 文档不支持开箱即用的 jersey/JAX-RS。 您需要在 Jersey 资源配置中控制 swagger.json 生成逻辑。

OpenApiResource openApiResource = new OpenApiResource();
// change package name
openApiResource.setResourcePackages(Set.of("com.service.resource"));
// you can do a lot of configuration here
// https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Integration-and-Configuration#configuration-properties
register(openApiResource);
© www.soinside.com 2019 - 2024. All rights reserved.