从String输入反序列化Java类时的Swagger文档

问题描述

在我的请求正文中,我有一个字段,该字段将字符串作为输入,但是在反序列化时会转换为Java对象。

public class UserCredentials {
  @NotBlank String username;
  @NotNull ReferenceString passwordRef;
}

passwordRef值作为字符串,我使用@JsonCreator将字符串转换ReferenceString对象。

public class ReferenceString {
  private String identifier;
  private String type;

  @JsonCreator
  public ReferenceString(String secretRefConfigString) {
    // logic to break the string into two and set the
    // identifier and type value
    return;
  }

序列化和反序列化工作正常。我遇到了 swagger文档的问题,该文档看起来像

    "UserCredentials" : {
        "type" : "object","required" : [ "passwordRef" ],"properties" : {
          "username" : {
            "type" : "string"
          },"passwordRef" : {
            "$ref" : "#/deFinitions/ReferenceString"
          }
        }
    }

    "ReferenceString" : {
      "type" : "object","properties" : {
        "identifier" : {
          "type" : "string"
        },"type" : {
          "type" : "string"
        }
      }
    }

由于API会将字符串作为输入,因此我希望在docs中,passwordRef的类型应显示为String而不是ReferenceString,我也不希望用户看到内部类{ {1}}。

我阅读了有关@ApiModel和@ApiModelProperty的信息。我可以在字段上使用@ApiModelProperty,文档将显示该字段为字符串,但是在我的代码中,很多字段的类型为ReferenceString,我不想在每个字段上都使用@ApiModelProperty字段。

可以通过其他方式轻松完成吗?我可以仅在ReferenceString添加一些注释/代码来​​解决此问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)