【发布时间】:2014-12-03 22:12:10
【问题描述】:
似乎Swagger 忽略了JAXB 注释,例如@XmlTransient
此外,Swagger 似乎也解析 getter,忽略 @XmlAccessorType(XmlAccessType.FIELD)
有没有办法指定Swagger 尊重JAXB 注释?
更新
代码示例
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlTransient;
import com.wordnik.swagger.annotations.ApiModel;
import com.wordnik.swagger.annotations.ApiModelProperty;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@ApiModel( value = "aaa")
public class A implements IA
{
@ApiModelProperty( value = "bla", required = true )
@XmlElement(name="a")
private String a;
@XmlTransient
private B b;
private A() {}//JAXB
@XmlTransient
public boolean isC() { return true;};
}
接口 IA 没有注释。并且没有可能干扰字段 b 的吸气剂。
swagger 生成的 JSON 是:
"A": {
"id": "A",
"description": "aaa",
"properties": {
"c": {
"type": "boolean"
}
}
}
如 Swagger 所见,忽略字段和 @XMLAccesorType(正如 Webron 在他的回答中指出的那样)
但也忽略了isC() getter 函数上的 JAXB 注释(@XmlTransient)
【问题讨论】:
-
您使用哪个版本的 swagger-core?是直接使用还是作为其他库的依赖(比如swagger-springmvc、spray-swagger)?
-
swagger-jersey-jaxrs_2.10 v1.3.10
-
字段/方法是否有任何附加注释?您可以编辑问题并提供示例模型类吗?
-
根据您的要求更新了问题
-
更新:当人们转向 swagger 2.0 规范时。 JsonIgnore 有效。 XmlTransient 不...
标签: java rest jaxb jackson swagger