【问题标题】:Swagger is it possible to override custom object serializationSwagger 是否可以覆盖自定义对象序列化
【发布时间】:2013-09-07 20:13:52
【问题描述】:

我一直在测试 swagger,以便将其用作我的 api 服务的实际文档。 我将休眠用于持久层,每个响应都绑定到一个实体。 问题是这些实体与其他实体有依赖关系,当我在@ApiOperation 响应中传递对象时,我想安排大摇大摆地不显示这些实体。 我能在网上找到的唯一想法是这个link from the github 页面。

我试过这样做:

String emptyJSON = "{}";
OverrideConverter addressConverter = new OverrideConverter();
addressConverter.add(User.class.getCanonicalName(), emptyJSON);
ModelConverters.addConverter(addressConverter, true);

但我收到此错误:

org.json4s.package$MappingException: 没有找到可以转换成java.lang.String的值

当我发现某些类作为字段或在列表中时,有没有办法避免序列化它们?

【问题讨论】:

  • 如果你使用的是 Jackson,你能用 @JsonIgnore 注释它们吗?

标签: jakarta-ee swagger


【解决方案1】:

好的,看来你可以使用

 OverrideConverter sessionConverter = new OverrideConverter();
 sessionConverter.add(Session.class.getName(), emptyJSON);
 ModelConverters.addConverter(sessionConverter, true);

用于全局避免序列化。 此外,如果您需要避免内部对象序列化,那么只需将所有 getter 方法更改为其他方法,似乎 swagger 正在使用这个 getter 而不是反射,这在我看来很糟糕。 希望有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 2016-10-11
    • 2011-09-22
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多