Micronaut 在控制器中正确处理 io.reactivex.Maybe,但如何处理?

问题描述

在我的控制器中,我有

@Get("/{id}")
fun findById(id: String): Maybe<AccountTransaction> {
    return accountTransactionRepository.findById(ObjectId(id))
}

存储库看起来像:

fun findById(id: ObjectId): Maybe<AccountTransaction> {
    return Flowable.frompublisher(getCollection().find(Filters.eq("_id",id))).firstElement()
}

如果我传入一个无效的 ID,控制器会正确响应 404。太好了!我只是不知道为什么/如何发生这种情况。我认为这只是在 MN 中烘焙,它会检查它是否为空。但是有人可以向我解释/确认吗?

解决方法

我假设这只是在 MN 中进行的,它会检查它是否是 空与否。但是有人可以向我解释/确认吗?

每当控制器操作返回 null 或空 Maybe 时都会生成 404。

请访问 https://docs.micronaut.io/2.4.2/guide/#serverIO