Как асинхронно сохранить тело ответа HTTP-запроса в Spring WebClientJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как асинхронно сохранить тело ответа HTTP-запроса в Spring WebClient

Сообщение Anonymous »

Я работаю над приложением Java Spring Boot, которое реализует веб-клиент для обработки оставшихся HTTP-запросов. Запросы GET вызываются к конечной точке, ответ принимается и сопоставляется с Mono, а затем обрабатывается в приложении. Урезанная версия исходного метода выглядит примерно так:

Код: Выделить всё

Optional result = client.get()
.uri("/entities/{id}", id).accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(MyEntity.class)
.blockOptional();
Теперь я хочу «перехватить» необработанное тело ответа json и сохранить его с помощью асинхронной (или неблокирующей) операции ввода-вывода, не блокируя и не препятствуя потоку ответов через конечная точка.
Я создал метод для сохранения и пометил его аннотацией @Async. Тело сначала сохраняется в строке, передается методу, а затем оно сопоставляется с классом MyEntity. Модифицированный метод, который успешно сохраняется и преобразует тело String обратно в MyEntity, выглядит примерно так:

Код: Выделить всё

Optional result = client.get()
.uri("/entities/{id}", id).accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(String.class)
.doOnNext(responseBody -> persistResponse(responseBody))
.doOnNext(savedResponse -> mapToMyEntity(savedResponse))
.blockOptional();
Я не уверен, что это правильный способ реализации этой функциональности, и мне хотелось бы получить рекомендации по правильной асинхронной обработке тела ответа JSON, не мешая существующему потоку.>

Подробнее здесь: https://stackoverflow.com/questions/793 ... pring-webc
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»