Обработчик, который возвращает вставленную запись - PullRequest
0 голосов
/ 03 апреля 2019

Если я использую реактивный репозиторий весной (используя kotlin) и я хочу вернуть вставленную запись.Как мне это сделать?Мне нужен оператор, который подпишется на то, что возвращает flatMap, а затем передаст его функции, чтобы я мог использовать ok().body(fromObject(insertedRecord))

То, что я пробовал:

  1. then: невозвращает значение
  2. .subscribe { Mono.just(ServerResponse.ok().build()) }: возвращает Disposable
@Component
class RecordHandler(private val repository: RecordRepository) {
    fun create(req: ServerRequest): Mono<ServerResponse> {
        return req.bodyToMono(RecordDTO::class.java)
                .flatMap { repository.insert(it.toDomain()) }
                .then(ok().build())
}

Другой вариант - запрос после вставки, но это обходной путь.

Спасибозаранее

1 Ответ

1 голос
/ 03 апреля 2019

Как насчет этого:

 return req.bodyToMono(RecordDTO::class.java)
            .flatMap { repository.insert(it.toDomain()) }
            .flatMap { ok().body(fromObject(it)) }

?

...