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

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

Сообщение Anonymous »

Я работаю над приложением Java Spring Boot, которое реализует WebClient для обработки HTTP -запроса REST. Запросы получены в конечную точку, и ответ получен и сопоставлен с моно, а затем дополнительно обрабатывается в приложении. Урезанная версия оригинального метода выглядит похожа на это: < /p>

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как асинхронно сохранить тело ответа HTTP-запроса в Spring WebClient
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Разместите запрос в WebClient, чтобы добавить тело запроса в JSON
    Anonymous » » в форуме JAVA
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Разместите запрос в WebClient, чтобы добавить тело запроса в JSON
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Spring Webflux: Webclient: получить тело при ошибке
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Spring webClient «Тело ответа клиента можно использовать только один раз»
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

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