英文:
How to convert a Uni<Void> response to a "not found" in Quarkus Resteasy Reactive?
问题
当someService.fetchStuff(id)
返回Uni<Void>
时,端点将返回状态码204(未找到)的空HTTP响应。在这种情况下,如何使端点发送状态码404(未找到)的HTTP响应?
英文:
Given an endpoint like that:
@GET
@Path("{id}")
public Uni<Stuff> getSomeStuff(@PathParam("id") int id) {
return someService.fetchStuff(id);
}
When someService.fetchStuff(id)
returns an Uni<Void>
the endpoints returns an empty HTTP response with status 204 (not found).
How can I get the endpoint to send an HTTP response with status 404 (not found) in this case?
答案1
得分: 1
你可以像这样做:
@GET
@Path("{id}")
public Uni<RestResponse<Stuff>> getSomeStuff(@PathParam("id") int id) {
return someService.fetchStuff(id).onItem().transform(s -> {
if (test(s)) {
return RestResponse.ok(s);
} else {
return RestResponse.notFound();
}
})
}
英文:
You can do something like this:
@GET
@Path("{id}")
public Uni<RestResponse<Stuff>> getSomeStuff(@PathParam("id") int id) {
return someService.fetchStuff(id).onItem().transform(s -> {
if (test(s)) {
return RestResponse.ok(s);
} else {
return RestResponse.notFound();
}
})
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论