我们正在为restful服务器和模型使用Swagger生成的代码,问题是json有效负载可以在任何时候使用新属性更新,这将导致错误。
通常,可以添加@JsonIgnoreProperties(ignoreUnknown = true)
来忽略属性,但在这种情况下,Swagger生成的模型是在每次构建时生成的(并且是只读的)。
如何将Swagger模型设置为忽略未知属性?
示例错误:
Unrecognized field "abc" (class xyz.model.sample), not marked as ignorable ....
根据Paul的回应进行更新:
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import javax.annotation.Priority;
import javax.ws.rs.ext.ContextResolver;
import javax.ws.rs.ext.Provider;
@Provider
@Priority(Integer.MIN_VALUE)
public class ObjectMapperResolver implements
ContextResolver<ObjectMapper>{
private ObjectMapper mapper;
public ObjectMapperResolver() {
mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,
false);
}
@Override
public ObjectMapper getContext(Class<?> cls) {
return mapper;
}
}
https://stackoverflow.com/questions/52207713
复制相似问题