У меня есть родительский DTO, в котором у нас много вложенных объектов. Есть ли способ, которым я могу игнорировать неизвестные свойства на всех вложенных объектов, а также на родительском DTO.
Если я добавляю JsonIgnore на родительский DTO, он игнорирует на родительском классе, но не на вложенных классах. Чтобы заставить его работать, я должен добавить JsonIgnore также ко всем вложенным объектам.
Есть ли способ, которым я мог бы достичь этого, не имея возможности писать на всех DTO?
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class RegistrationRequest implements Cloneable {
private Subject subject;
private CaseDetail caseDetail;
private CaseEvent caseEvent;
private List<CaseRace> caseRaces;
private List<SubjectReference> subjectReferences;
Я должен использовать конечную точку и передать ее как полезную нагрузку на эту конечную точку, чтобы она там работала с ошибкой.
ObjectMapper mapper = new ObjectMapper(); //TODO inject through constructor
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
Properties properties = propertiesFactory.getProperties(); //TODO inject through constructor
url = properties.getProperty("regCore.patientInfo");
restclient.addHeader("userId", registrationRequest.getDataEntryPersonCtepId());
String registrationRequestInJsonString = mapper.writeValueAsString(registrationRequest);
response = restclient.put(url, registrationRequestInJsonString);
Запрос Put RestClient - это наш пользовательский класс:
public Response put(String url, String payload){
Builder acceptInvocationBuilder = createBuilder(url);
acceptInvocationBuilder.accept(MediaType.APPLICATION_JSON);
return acceptInvocationBuilder.put(Entity.json(payload));
}
конечная точка, которая потребляет, выглядит следующим образом:
@Path("/patient-demography")
@PUT
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Update patient demography", response = RegistrationRequest.class, tags = "Registration")
public Response updatePatientDemography(Registration registration) {
Невозможно разобрать, так как жалуется на свойства, не совпадающие
Failed : HTTP error code : 400 Unrecognized field