API REST потребляет динамический c JSON - PullRequest
0 голосов
/ 05 марта 2020

У меня есть REST API, который будет иметь службу, которая получит json, который может динамически меняться.

@POST
@Path("/my/service")
public Response saveData(@ApiParam GenericObject request);

Мне нужно захватить весь контент json для хранения в базе данных. Как мне это сделать? Как я могу построить GenericObject, чтобы не генерировать исключение синтаксического анализатора и захватывать все поля и дочерние объекты?

Один фиктивный пример Json может быть

{
"name":"John",
"age":30,
"cars":[ ... ] //Dynamic content
}

Спасибо

1 Ответ

1 голос
/ 05 марта 2020

Вы можете попробовать приведенный ниже пример кода, он творит чудеса для вас. Инициализировать заголовки запроса.

 try {
 HttpHeaders requestHeaders = getRequestHeaders();
 HttpEntity<RequestDto> requestEntity = new HttpEntity<>(requestDto, requestHeaders);
 ResponseEntity<String> response = restTemplate.postForEntity(baseUrl, requestEntity, 
 String.class);
 if (response != null && response.getStatusCode() == HttpStatus.OK) {
 try {
 ObjectMapper objectMapper = new ObjectMapper();                
 objectMapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
 Map<?, ?> map = objectMapper.readValue(response.getBody(), Map.class);
 return new Response<ResponseDto>().buildSuccessResponse(map.toString());
 } 
catch (Exception e) {
 e.printStackTrace();
return new Response<ResponseDto>().buildErrorResponse("Failed to map response");
}}}
catch()
{
}
...