Java API GET с WebFluxJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java API GET с WebFlux

Сообщение Anonymous »

Я создаю API с помощью Spring Boot WebFlux. Этот метод позволяет загрузить файл. Это код:

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

 public Mono downloadAttachment(final ServerRequest request) {
final var idPercorso = request.queryParam("idPercorso")
.map(Integer::parseInt).orElse(null);
}

Mono additionalCalcualtions(MapFile mapFile, ServerRequest request){
return Mono.zip(parseUserInfo(request), request.bodyToMono(ObjectNode.class))
.flatMap(t -> {
//var dto = t.getT2();
return silverMountainService(t.getT1()).downloadMappaPercorso(StorageType.parse(mapFile.storageType),mapFile.omniaClass, mapFile.getFileName()
)
.flatMap(fileResult -> ServerResponse.ok()
.headers(h -> h.setContentDisposition(
Optional.ofNullable(mapFile.getFileName())
.filter(StringUtils::isNotBlank)
.map(filename -> ContentDisposition.attachment().filename(mapFile.getFileName()).build())
.orElseGet(() -> ContentDisposition.inline().build() )
))
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(BodyInserters.fromValue(fileResult.getContent()))
);
})
.onErrorResume(CustomHttpException.class, assEx -> {
log.error("Error({}): {}", assEx.getErrorId(), assEx.getMessage());
return ServerResponse.status(assEx.getHttpStatus()).bodyValue(String.format("ErrorID: %s", assEx.getErrorId()));
})
.onErrorResume(Exception.class, ex -> {
var errId = UUID.randomUUID().toString();
log.error(String.format("Error(%s) %s", errId, ex.getMessage()), ex);
return ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR).bodyValue(String.format("ErrorID: %s", errId));
});
}
Чтобы вызвать этот метод, я использую следующую ссылку:

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

myUrl/downloadMappa?idPercorso=2
Теперь, если я попытаюсь вызвать свой метод с телом json, вот так мой метод работает правильно. Если я попытаюсь вызвать свой метод без тела json, я верну пустой ответ.
Как мне изменить свой код, чтобы он принимал NULL в качестве тела?

Подробнее здесь: https://stackoverflow.com/questions/792 ... th-webflux
Ответить

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

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

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

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

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