问题描述
在我的请求正文中,我有一个字段,该字段将字符串作为输入,但是在反序列化时会转换为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 (将#修改为@)