【发布时间】:2019-09-17 09:29:24
【问题描述】:
我想编写一个 REST API,当我尝试创建已存在的实体或尝试更新不存在的实体时返回 HTTP 400。
@Post
fun create(@Body entity: @Valid Entity): HttpResponse<Entity> {
val optional = entityService.find(entity)
if(optional.isPresent) {
return HttpResponse.badRequest()
}
return HttpResponse.created(entityService.save(entity))
}
如何使用带有 RXJava2 和 Micronaut 的非阻塞端点来做到这一点,我只能找到带有 switchIfEmpty
的示例@Post
@Status(HttpStatus.CREATED)
fun createMeal(@Body entity: @Valid Entity): Single<Entity> {
return entityService.find(entity)
.switchIfEmpty(entityService.save(entity))
.map{success -> entity}
}
但即使没有保存任何内容,此代码也总是返回 HTTP 200,我认为这不是一个好习惯。
谢谢
【问题讨论】: