Есть ли способ обработать Stream Json с помощью RestTemplate? - PullRequest
0 голосов
/ 22 мая 2018

Есть ли способ обработать application/stream+json контент старомодным RestTemplate, как это делает webClient?

Что касается моих попыток, обернуть результаты чего-то вроде restTemplate.getForEntity вFlux.just(<convert response entity to mono here>) просто вернет первый элемент и остановится на этом, в то время как webClient будет обрабатывать его правильно, заполняя полученный результирующий json новыми записями по мере их появления.Еще не пробовал работать с inputStream, но на первый взгляд мне кажется, что это не то, что мне нужно, несмотря на то, что в его названии есть «поток».

К сожалению, использование webClient было быв этом случае достаточно дорогой вариант (все еще ожидающий https://github.com/spring-projects/spring-security/issues/4921). Я бы предпочел реализовать вещи, которые «скоро» появятся официально, только если нет абсолютно никакого другого пути.

1 Ответ

0 голосов
/ 22 мая 2018

RestTemplate предоставляет API, который не предназначен для потоковой передачи ответа HTTP.Базовый HTTP-ответ читается и закрывается после каждого вызова, тогда как медиа-тип "application/stream+json" предназначен для потоковых ответов.

Я не вижу способа правильно обработать этот вариант использования (чтение потоковых ответов) с помощьюRestTemplate, в соответствии с дизайном (посмотрите SPR-14882 для другого примера).Поэтому вам, вероятно, придется подождать, пока эта проблема будет решена, или использовать другой HTTP-клиент с такими функциями.

...