spring - 返回插入记录的处理程序
问题描述
如果我在 spring 中使用响应式存储库(使用 kotlin)并且我想返回插入的记录。我该怎么做?我需要一个运算符来订阅 flatMap 返回的内容,然后将其传递给一个函数,以便我可以使用ok().body(fromObject(insertedRecord))
我尝试过的事情:
then
: 不返回值.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())
}
另一种选择是在插入后进行查询,但这是一种解决方法。
提前致谢
解决方案
这个怎么样:
return req.bodyToMono(RecordDTO::class.java)
.flatMap { repository.insert(it.toDomain()) }
.flatMap { ok().body(fromObject(it)) }
?
推荐阅读
- php - 无法访问由 json_decode 创建的 Json 数组值
- javascript - Javascript - Google IMA SDK 覆盖跳过按钮
- node.js - 如何在 Alternative Runtime Docs Add-on 中获取 Google Docs 文档标识符
- javascript - 谷歌登录无法在 Chrome 的隐身模式下工作
- tensorflow - 如何从 keras 获取对象位置和预测分数
- c++ - 在 C++ 中使用可变参数函数编译错误
- html - 如何在 iPhone 中使用 Hls.js 流式传输视频
- javascript - 如何将烧瓶应用程序部署到共享主机上的 cgi-bin 文件夹?
- ldap - MariaDB LDAP PAM 身份验证
- cookies - Jmeter 的 cookie 与网络浏览器中的数据不同