我有一个使用 Swagger 的 Java 项目。它在生成 swagger.json 方面做得很好,但是它将所有输出字段列为可选,我需要其中一些是必需的。这对我的代码来说不是问题,因为我可以添加 @ApiModelProperty 注释并指定它是否是必需的。
问题在于来自 3rd 方 jar 的对象。我不能去注释那个代码。如何在 3rd 方代码上创建 @ApiModelProperty 的等效功能?
假设我们正在谈论更新版本的 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