8

我有一个使用 Swagger 的 Java 项目。它在生成 swagger.json 方面做得很好,但是它将所有输出字段列为可选,我需要其中一些是必需的。这对我的代码来说不是问题,因为我可以添加 @ApiModelProperty 注释并指定它是否是必需的。

问题在于来自 3rd 方 jar 的对象。我不能去注释那个代码。如何在 3rd 方代码上创建 @ApiModelProperty 的等效功能?

4

1 回答 1

0

假设我们正在谈论更新版本的 swagger / openAPI。你可以用一个ReaderListener这样的东西来解决这个问题:

    public static class FixSwagger implements ReaderListener {
        @Override
        public void beforeScan(OpenApiReader reader, OpenAPI openAPI) {}

        @Override
        public void afterScan(OpenApiReader reader, OpenAPI openAPI) {
            var paths = openAPI.getPaths();
            paths.remove("/application.wadl");
            paths.remove("/application.wadl/{path}");
        }
    }

然后使用以下方法在您的代码中注册它:jersey.register(FixSwagger.class);

和方法允许您改变对象beforeScan(),因此您可以通过编程方式更改您需要的任何内容。afterScan()openAPI

于 2021-08-24T09:02:33.227 回答