gpt4 book ai didi

java - Swagger 在我的 play 应用程序中向每个模型展示 _ebean_intercept

转载 作者:行者123 更新时间:2023-11-30 07:07:53 25 4
gpt4 key购买 nike

我正在将 swagger 集成到我的 play 应用程序中。它工作正常。 (玩2.2+招摇1.3.3)

尽管它为每个模型添加了一个我需要隐藏的字段

Classification {
id (integer, optional),
type (string, optional),
shortCode (string, optional),
active (boolean, optional),
**_ebean_intercept (EntityBeanIntercept, optional)**
}

我在 Scala 中创建了一个自定义转换器(顺便说一句,我的应用程序是用 Java 编写的)

class IgnoreConverter extends SwaggerSchemaConverter {
override def skippedClasses: Set[String] = Set("com.avaje.ebean.bean.EntityBeanIntercept")
override def ignoredClasses: Set[String] = Set("com.avaje.ebean.bean.EntityBeanIntercept")
override def ignoredPackages: Set[String] = Set("com.avaje.ebean")
}

我在通过 Globals.java 加载 Play 应用程序时添加此转换器

@Override
public void onStart(Application application) {
Logger.info("Registering custom converter");
//HideModelConverter converter = new HideModelConverter();
IgnoreConverter converter = new IgnoreConverter();

ModelConverters.addConverter(converter, true);
}

仍然没有运气。

谁能告诉我应该看哪里?

如何从自省(introspection)中隐藏 Swagger 的字段、类、包?为什么 Swagger 忽略了我的转换器?

感谢您的帮助

最佳答案

我也遇到过同样的问题。我认为它来自在 onStart() 有机会运行之前加载的 Swagger 模块。因此,如果您更改某些内容,应用程序会重新加载并且运行良好。

我通过将加载从 onStart 更改为 beforeStart 来修复它:

@Override
public void beforeStart(Application app) {
Logger.info("Registering custom converter");
ModelConverters.addConverter(new IgnoreConverter(), true);
}

关于java - Swagger 在我的 play 应用程序中向每个模型展示 _ebean_intercept,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24458575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com